2016-05-03 13 views
13

Ich habe meine neue Unit-Tests Teamcity 9.1.6 laufen basierend auf NUnit 3.2.1 aktualisiert. Aber jetzt bin ich Probleme laufen die Tests:NUnit 3.2.1 + Teamcity: Konnte Datei oder Assembly 'NUnit.Framework' laden

Ich habe den NUnit3 Testamentsvollstrecker in Build-Schritten ausgewählt, es entsprechend konfiguriert:

Build step configuration

Beim Bau, erhalte ich eine Fehlermeldung: „Could Datei oder Assembly 'nunit.framework' oder eines seiner Abhängigkeiten nicht laden. Das System kann die angegebene Datei nicht finden. ".

Build log

Alles sollte in Ordnung sein, die Wege sind in Ordnung, die Anordnung auf dem Weg der Testanordnung ist, ist alles in AnyCPU Konfiguration gebaut. Es gibt auch den Fehler, dass NUnit-Version keine Release-Version ist, was ich denke, ist Bullshit, es ist eine Veröffentlichung auf der NUnit-Website. Und der Fehler scheint nichts zu kaputt zu machen (er war auch vorhanden, als ich einen Fehler vor dem 'nunit.framework'-Fehler hatte, und als ich diesen Fehler behoben hatte, wurde der Build weiter).

Alle Leitungen geschätzt!

UPDATE: Ausführen von Tests mit einem Befehlszeile-Runner und Ausführen derselben ninit3-console.exe funktioniert einwandfrei. Also ich denke, das ist ein NUnit-Runner-spezifisches Problem. Dennoch sind Vorschläge willkommen, wie man das beheben kann.

UPDATE 2: Ich habe versucht, sowohl das Lösungspaket und die NUnit-Console von Teamcity zu 3.0.0 Herabstufung - noch, das gleiche Resultat.

UPDATE 3: Wie ich vermutet habe, bestätigt Teamcity Unterstützung, dass die Nachricht über „NUnit Version nicht unterstützt wird“ ein fehlerhaftes ist, und soll nichts beeinflussen.

+1

Es ist immer noch ein Problem mit 10.x und es ist ein Problem, weil der Build fehlschlägt. – Mukus

+0

Das ist traurig. Ich benutze jedoch immer noch die Problemumgehung. Ich habe keine Zeit, die No-Workaround-Lösung neu zu konfigurieren und auszuprobieren. –

Antwort

4

Nach einer langen E-Mail-Diskussion mit TeamCity Tech Support kamen wir zu einer Lösung. Ich wurde benachrichtigt, dass sie dieses Problem in der kommenden TC10-Version behoben haben (die Ende Juni 2016 veröffentlicht wurde), und dass es im Moment einige Problemumgehungen gibt, die das Problem beheben.

Ich habe Nummer zwei versucht, und es hat für mich funktioniert.

  1. Run Tests nur in den verschachtelten Verzeichnissen relativ zur Kasse Verzeichnis (beispiels Sie sie vor kopieren könnte)

  2. einen Build-Konfigurationsparameter nunit_use_project_file-False hinzufügen:

    Edit Parameter popup

    Das heißt, ich ging zu meinem Testaufbau und laufenden Projekten, ging zum Abschnitt Parameter und fügte den neuen Parameter "nunit_use_project_file" als False hinzu. Tests laufen jetzt unter NUnit3 Build Step Runner.

+0

Ich bekam den gleichen Fehler und die Lösung Nummer 2 funktionierte für mich. Aber nach dem Upgrade auf teamcity 10.0.1 kommt dieser Fehler zurück und wir können keinen der Tests mehr ausführen. Irgendeine Idee? – sam

+1

@sam versuchen Sie die Antwort in diesem [link] (http://stackoverflow.com/a/3668371/354277)? – Mathew

+0

@sam Ich würde vorschlagen, versuchen, TeamCity Unterstützung zu kontaktieren. Sie haben einen Tag oder zwei Tage gebraucht, um zu antworten, aber sie haben geholfen. –

24

Ich hatte das gleiche Problem mit TeamCity 10.0.1 (Build 42078) und NUnit 3.4.1. Und es stellte sich heraus, dass ich komplett schuld war. Ich poste es hier, da jemand anderes in dasselbe Problem stolpern kann und das kann ihnen etwas Zeit sparen.

Es stellte sich heraus, dass das Problem in der "Run tests from: " Einstellung in meiner Build-Konfiguration war.

enter image description here

Ich hatte **\*.Test.dll. Das hat versehentlich dlls für \obj\**\ Verzeichnisse übernommen (wo es keine nunit.framework.dll gibt). Sobald ich die Einstellung auf **\bin\%BuildConfiguration%\*.test.dll geändert habe, funktioniert alles gut.

Hinweis:% BuildConfiguration% ist ein Parameter, der Ihre bevorzugte Build-Konfiguration auf dem TC gibt (wie Debug/Release/CIBuild etc.)

0

Wenn Sie nicht bereits über Nunit3 und Nunit.Console (Runner) In Ihrer packages.config sollten Sie es mit dem Paket-Manager in Ihr Projekt "installieren".

Folgen Sie dann den Anweisungen in dieser anderen Antwort zum Erstellen eines Schritts "automatische Erkennung" für den Nunit.ConsoleRunner. https://stackoverflow.com/a/38862220/3794873