2012-10-24 73 views
17

Con nUnit, se si aggiungono le dichiarazioni Debug.Print nei test, queste vengono visualizzate nell'output di test. (Almeno lo fanno nella finestra di test dell'unità Resharper)Come posso aggiungere messaggi di log ad un test NUnit che apparirà in una nidificata esecuzione di build?

Quando si utilizza un file di build nant che esegue gli stessi test, tali istruzioni di Debug.Print non vengono visualizzate.

Come posso aggiungere un messaggio ai test dell'unità che verrà visualizzato sia nell'output nUnit che nell'output del log di build da nant?

risposta

23

Console.WriteLine() deve essere conservato (è almeno per la mia versione di NUnit).

Detto questo, considerare - ogni volta che si desidera aggiungere un output di testo - come si potrebbe trasformarlo in un'asserzione con un messaggio. I tuoi test andranno molto meglio.

+0

Generalmente sono d'accordo con te, ma in questo caso le informazioni necessarie non erano correlate al test dell'app, erano i metadati relativi all'esecuzione dei test (in particolare il percorso di esecuzione). –

+0

Questo ha fatto il trucco perfettamente! –

21

Il modo di registrazione di NUnit3 durante un test è tramite la classe: TestContext. Ha una serie di varianti di scrittura statiche. Ciascuno emette un contenuto generale per il risultato del test.

TestContext.Out produce un TextWriter che può essere utilizzato anche per emettere informazioni di registrazione nei risultati del test.