MonoTouch – meilleure sortie de la console dans l'organiseur de XCode

Nous avons joué avec le nouveau projet de test Monotouch NUnit, qui est plutôt sympa.

Plusieurs de ces tests sont déjà exécutés sur Windows dans le logiciel CI, et nous imprimons beaucoup de choses sur la console pour voir ce qui n'a pas fonctionné pendant les tests.

Si nous construisons et exécutons ces tests pour MonoTouch, et que nous regardons la console dans l'organiseur de XCode, ils sont plutôt moche:

Feb 20 10:34:57 unknown UIKitApplication:com.ourcompany.ourapp[0xab78][8329] <Notice>: [Our usually pretty rainbows and unicorn console output here] 

Existe-t-il un moyen de nettoyer cette sortie dans iOS? Il serait bon de replace au less "inconnu" par quelque chose de plus significatif, ou de le supprimer complètement et UIKitApplication.

En outre, cela ne nous dérange pas d'appeler en quelque sorte NSLog au lieu de Console.WriteLine si cela va résoudre ce problème.

Je pense que le moyen le plus simple, qui ne nécessiterait pas de changements à vos tests existants, est de:

  • Utilisez l' enregistreur réseau optionnel . Cela enverra tous les résultats du test à un server socket, en les séparant des autres journaux provenant des périphériques iOS; et

  • Appelez Console.SetOut avec TouchRunner.Writer tant que paramètre (dans AppDelegate.cs). Cela devrait (maintenant non testé 😉 connecter toutes les écritures existantes que vous avez à la console dans le journal du réseau.

Autant que je sache, il n'y a aucun moyen de modifier ce qui est écrit sur la console de Xcode, puisque le contenu au début de chaque ligne est écrit automatiquement par le système.

Vous pouvez faire de la magie dans un terminal avec mtouch, grep et sed bien:

 /Developer/MonoTouch/usr/bin/mtouch --logdev | grep com.yourcompany.yourapp | sed 's/.*<.*>: //'