2009-04-09 6 views
1

Nunit Tests schlägt fehl, wenn durch cc.net Springe Prozess Timeout ausgeführt. Prozess wurde getötet Alles funktioniert gut, wenn durch nUNit ​​oder VS.Prozess Timeout ohne Fehler in der Testausführung mit cc.net

Auch cc.net zeigt dann die Ergebnisse des vorherigen Builds, auch wenn der Build sauber ist.

Jede Hilfe plz.

Antwort

2

Das Standard-Timeout beträgt 600 Sekunden. Wenn Ihre Tests beginnen zu überschreiten, wird der Build ohne Angabe fehlschlagen. Möglicherweise müssen Sie die Timeouts für Ihre cc.net-nunit-Aufgabe auf

+0

<- - Verwenden Sie NUnit für Unit-Tests> Dies ist Kopie von meinem Nunit Task Block in der Konfigurationsdatei, noch sind sie mit keinem Grund scheitern – sam

+0

Ich habe gesehen, dass Nunit auf Tests, die in einem Single Threaded Apartment (STA) laufen müssen fehlschlagen. Wenn das der Fall ist, muss der Parameter -nothreaded an die Datei nunit-console.exe übergeben werden. –

+0

Ja Ich setze den Status bereits auf STA in meiner app.config-Datei des VS-Projekts Willst du mich es setzen in Ccnet Konfigurationsdatei – sam

1

aufstocken Wenn Sie die Ergebnisse von einem früheren Build sehen, ist es wahrscheinlich, weil Sie die Ergebnisse von Ihrem vorherigen Build nicht löschen.

<publishers> 
    <merge> 
     <files> 
      <file>bin\debug\*-results.xml</file> 
     </files> 
    </merge> 
</publishers> 

In meinen Aufgaben, ich habe einen Schritt in meiner Build-Datei, die die gesamte löscht ":

Zum Beispiel meiner NUnit Testergebnisse auf Dateien mit dem Namen {foo} -results.xml geschrieben bin \ debug "Verzeichnis, so dass meine Ergebnisse immer die aktuellen sind.

0

Eine Möglichkeit ist, dass Sie ein Berechtigungsproblem haben. CruiseControl läuft möglicherweise unter einem Dienstkonto und hat andere Berechtigungen als Ihr Benutzerkonto (von dem ich anmaße, dass Sie die Tests manuell ausführen.) Versuchen Sie, sich als Dienstkonto bei dem Computer anzumelden, und prüfen Sie, ob Sie die Komponententests ausführen können durch VS oder NUnit.

0

Ich habe gesehen, dass dies passiert, wenn ein Test eine Assertion hat, z.B. Debug.Assert (etwas hier). Wenn dies in CC.Net passiert, öffnet das CC.Net-Build ein Meldungsfeld für die Assertion. Da niemand das Meldungsfeld auf dem Build-Server schließt, überschreitet der NUnit-Test das Zeitlimit.