2012-04-11 7 views
5

Ich verwende Cruisecontrol für die Erstellung von Code und Ausführung von ~ 200 Testfällen.Ermitteln des aktuell ausgeführten Testfalls von Nunit

Manchmal hängt der Build aufgrund einiger Testfälle und ich kann nicht feststellen, welcher Testfall es ist.

Ist es möglich, den Namen des aktuell ausgeführten Testfalls zu drucken, ohne den aktuellen Testfallcode zu ändern?

Wenn ja, wie?

Antwort

1

TestContext.CurrentContext.Test.Name hilft bei der Identifizierung des aktuell ausgeführten Testfalls. Putting

in Methode mit SetUp-Attribut wird das UT derzeit ausgeführt.

4

Ich gehe davon aus, dass Sie mit NUnit Ihre Tests durchführen. Wenn dies der Fall ist, verwenden Sie den <nunit> Block in der CruiseControl-Konfiguration mit der Task <exec>. Fügen Sie im Element <buildArgs> das Befehlszeilenarray/labels ein. Dadurch werden die Informationen in das Serverprotokoll gedruckt.

Statt mit:

<nunit> 
    <path>C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe</path> 
    <assemblies> 
     <assembly>C:\Projects\Personal\MyTestApp\MyTestApp.Tests\bin\Debug\MyTestApp.Tests.dll</assembly> 
    </assemblies> 
</nunit> 

Verwendung:

<exec> 
    <executable>C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe</executable> 
    <buildArgs>/labels C:\Projects\Personal\MyTestApp\MyTestApp.Tests\bin\Debug\MyTestApp.Tests.dll</buildArgs> 
</exec> 

Ich weiß, es ist nicht ideal, aber es wird jeden Test drucken, wie sie in das Protokoll läuft. Sie können dann die Zusammenführungsaufgabe verwenden, um die XML-Datei, die von Nunit ausgegeben wird, in Ihr Build-Protokoll einzubinden.

Versuchen Sie dies zuerst mit der ccnet-Konsolenanwendung, damit Sie die Ausgabe in Echtzeit sehen können. Es sollte Ihnen helfen, zu sehen, wonach Sie suchen. hinzufügen

line: 53   argsBuilder.AddArgument("/labels"); 

Oder Sie könnten nur diese Zeile,:

Es könnte auch die folgende Zeile in dem „Projekt \ core \ tasks \ NUnitArgument.cs“ Datei hinzufügen gut sein, einen Patch zu CruiseControl- einreichen Bauen Sie CruiseControl und verwenden Sie Ihre eigene Version.

Verwandte Themen