MonoTouch - Output di console migliore nell'organizzatore di Xcode
-
28-10-2019 - |
Domanda
Abbiamo giocato con il nuovo progetto di test Nunit Monotouch, che è abbastanza bello.
Molti di questi test abbiamo già eseguito su Windows nel software CI e stampiamo molte cose sulla console per vedere cosa è andato storto durante i test.
Se costruiamo ed eseguiamo questi test per MonoTouch e visualizziamo la console nell'organizzatore di Xcode, sembrano piuttosto brutti:
Feb 20 10:34:57 unknown UIKitApplication:com.ourcompany.ourapp[0xab78][8329] <Notice>: [Our usually pretty rainbows and unicorn console output here]
C'è un modo per pulire questo output in iOS? Sarebbe bello almeno sostituire "sconosciuto" con qualcosa di più significativo, o rimuoverlo e Uikitapplication del tutto.
Inoltre, non ci importa di chiamare in qualche modo NSLog
invece di Console.WriteLine
Se risolverà questo.
Soluzione
Penso che il modo più semplice, che non richiederebbe modifiche ai tuoi test esistenti, sia:
Utilizzare il opzionale Logger di rete. Ciò invierà tutti i risultati del test a un server socket, separandoli da altri registri provenienti da dispositivi iOS; e
Chiamata
Console.SetOut
insieme aTouchRunner.Writer
come parametro (in appdelegate.cs). Questo dovrebbe (non testato in questo momento ;-) Registra ogni scrittura esistente che hai alla console nel logger di rete.
Altri suggerimenti
Per quanto ne so, non c'è modo di modificare ciò che è scritto sulla console di Xcode, poiché le cose all'inizio di ogni riga sono scritte automaticamente dal sistema.
Puoi fare un po 'di magia in un terminale con mtouch, grep e sed: però:
/Developer/MonoTouch/usr/bin/mtouch --logdev | grep com.yourcompany.yourapp | sed 's/.*<.*>: //'