2014-01-14 17 views
17

Ich versuche laufen MSTest Build-Plugin auf jenkins zu konfigurieren, aber ich bin den folgenden Fehler erhalten:Fehler beim mstest auf jenkins

Path To MSTest.exe: mstest.exe 
Result file was not found so no action has been taken. file:/C:/Program%20Files%20(x86)/Jenkins/jobs/SoftwrenchvNext/workspace/TestResult.trx 
FATAL: null 
java.lang.NullPointerException 
    at org.jenkinsci.plugins.MsTestBuilder.perform(MsTestBuilder.java:144) 

Die Konfiguration einfach TestResult.trx als ResultFileName angibt. Diese Datei ist nicht versioniert und ich erwarte, dass sie bei jedem Build erstellt wird.

Was muss dafür getan werden?

+0

Das gleiche Problem haben. Hast du das jemals gelöst? –

Antwort

20

Ich hatte auch genau diese Fehlermeldung!

Ich empfehle, den Schritt "Einheitentests mit MSTest ausführen" zu ersetzen. mit einem "Windows-Batch-Befehl ausführen" Schritt. Das hat für mich funktioniert.

Befehl

del TestResults.trx 
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Example.Tests\bin\Debug\Example.Tests.dll /resultsfile:TestResults.trx 

Mit dieser Technik Sie immer noch die "Publish MSTest Testergebnis Bericht" Schritt verwenden Angabe ...

Testbericht TRX-Datei

TestResults.trx 

Viel Glück!

Sie können auch die Funktion "Fortsetzen bei fehlgeschlagenen Tests" mit einem "EXIT" -Anruf "simulieren", siehe unten.

del TestResults.trx 
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe" /testcontainer:Example.Tests\bin\Debug\Example.Tests.dll /resultsfile:TestResults.trx /nologo 
EXIT /B 0 
+4

Das MSTest-Plugin für Jenkins unterstützt keine Leerzeichen im Pfad zum Arbeitsbereich. –

+7

Wenn dies der Fall ist, ist das dumm, weil der Standardinstallationspfad Leerzeichen enthält. –

+0

Schade zu wissen, dass die einzige Lösung das Skript ist ... –

24

Nach einigen Untersuchungen konnte ich MSTest bekommen in Jenkins zu arbeiten, indem Sie folgendermaßen vorgehen:

Wählen Sie Verwalten Jenkins

enter image description here

Aus dem Verwalten Jenkins wählen Configure System

enter image description here

In Configure System benötigen Sie MSTest und Fügen Sie Ihre MSTest Konfiguration

enter image description here

Geben Sie Ihre Konfiguration zu finden, wie Sie sehen, passen. Mine sieht wie folgt aus:

enter image description here

Speichern Sie die Konfiguration und dann zu Ihrem Build-Projekt gehen und die entsprechenden Elemente konfigurieren, wie unten dargestellt:

enter image description here

Eine Sache zu beachten ist, dass ich tat Befolge keine der auf der Website des Autors aufgeführten Schritte, da sie für mich keinen Sinn ergeben. Ich habe jedoch den Code gelesen und einige Zeit damit verbracht zu graben und habe festgestellt, dass das fehlende Teil auf der Seite System konfigurieren von Jenkins war.

Prost!

+0

Großer Tipp - funktioniert für mich! –

+0

Arbeitete für mich auch. Jetzt muss ich herausfinden, warum Jenkins meine Testkategorien ignoriert. – GrahamJ

0

Am Ende gab ich die Konfiguration der MSTest über die easy Panels auf - es würde nicht die Test-DLL finden, so wie der Typ oben habe ich den Batch-Befehl verwendet. Ich habe meinen Stapelbefehl unten hinzugefügt, weil einige Probleme mit früheren Antworten behoben werden, die nicht berücksichtigen, dass Sie die .trx-Datei vor jedem Lauf löschen müssen, oder geben Sie einen eindeutigen Namen oder Tests werden fehlschlagen.

Hier ist meine Lösung in Jenkins als Batch-Befehl ausgeführt wird:

"C:Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/MSTest.exe" /resultsfile:"%WORKSPACE%/MyAppTest_%BUILD_NUMBER%.trx" /testcontainer:"%WORKSPACE%/Components/ebox2/Central/MyApp/MyAppWeb/trunk/MyAppTest/bin/Release/MyAppTest.dll" /nologo /category:Build 

Beachten Sie die Aufnahme von% BUILD_NUMBER% in den .trx Dateinamen, die wegen der doppelten .trx andernfalls um das Problem der Arbeitsplätze erhalten Datei.

Beachten Sie auch, dass/Kategorie: Build ermöglicht es Ihnen, die gewünschten Tests auszuwählen. Sie legen die Kategorie in den Tests auf sich:

[TestCategory("Build"), TestMethod()] 

ich diese verwenden, weil ich einige Selenium-Tests, die ich nicht herausgefunden haben, wie noch in Jenkins laufen, oder wenn dies möglich ist.

Verwandte Themen