2016-04-04 10 views
3

Ich habe eine Release-Definition in Visual Studio Team Services hinzugefügt, um eine Anwendung für einen Azure Cloud-Service bereitzustellen. Ich versuche, einige Integrationstests nach einem erfolgreichen Einsatz auszuführen:Ausführen von Integrationstests nach Bereitstellung in Visual Studio Team Services

enter image description here

Aber leider Tests laufen nicht:

Warning: No test is available in C:\a\301532a74\Build\Api.Web.IntegrationTests\Api.Web.IntegrationTests.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again. 
Information: Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true 
##[warning]No results found to publish. 

ich den NUnit Test Adapter (nuget Paket) installiert haben für alle Projekte, die Tests enthalten (Komponententests und Integrationstests). Das Seltsame ist, dass ich die Tests als Teil einer Build, aber nicht als Teil einer Release ausführen kann.

Ich habe auch versucht, den Pfad zu benutzerdefinierten Testadapter zu setzen, aber es scheint keinen Unterschied zu machen.

Was fehlt mir hier? Gibt es eine bessere Möglichkeit, einige Integrationstests als Teil eines Releases auszuführen?

+0

Ist das NUnit 2 oder 3? Wenn 3, verwenden Sie das CTP9-Paket, das dieses Wochenende veröffentlicht wurde? Es gab ein Problem mit CTP8. – Chris

+0

NUnit 2.6.4. Ich habe die neueste Version von NUnitTestAdapter installiert. –

+0

Welchen Build Agent verwenden Sie? Hosted oder eigene? –

Antwort

3

Ich habe eine Lösung für mein Problem gefunden wurden, basierend auf Eddies Vorschläge:

Schritt 1 - in den Ausgabeordner des Testprojekts alle NUnit Baugruppen Kopieren (den Copy Local Eigenschaft Wahre)

NUnit assemblies

enter image description here

Schritt 2 - erstellen Sie eine artifa ct, das alle Dateien des bin-Ordners des Testprojekts enthält. Diese enthält nicht nur die Testanordnungen, sondern auch die NUnit Baugruppen

enter image description here

Schritt 3 - In der Prüfaufgabe, stellen Sie den Pfad zu benutzerdefinierten Testadapter zum Artefakte Ordner, der die Testanordnungen und den NUnit-Adapter enthält Baugruppen

enter image description here

das ist es! Wenn Sie das nächste Mal ein Release erstellen und in einer beliebigen Umgebung bereitstellen, werden Tests ausgeführt.

3

Dies wird normalerweise durch den NUnit-Testadapter verursacht, der von VSTest nicht gefunden werden kann.

Normalerweise wird der NUnit-Testadapter in der "Build" -Umgebung im Arbeitsordner von nuget wiederhergestellt, so dass VSTest ihn während des Tests finden kann. In der "Release" -Umgebung ist der NUnit-Testadapter jedoch standardmäßig nicht vorhanden. Daher müssen Sie Ihre Build-Definition aktualisieren, um die NUnit-Testadapterdateien auf "Drop" zu laden, und der NUnit-Testadapter wird nach dem Herunterladen der Artefakte in der "Release" -Umgebung verfügbar sein. Dann können Sie den "Pfad zu benutzerdefinierten Testadaptern" auf "$ (System.DefaultWorkingDirectory)" setzen und es erneut versuchen.

Wenn Sie einen eigenen Build-Agent verwenden, können Sie den NUnit-Testadapter auch in einem permanenten Pfad platzieren, auf den der Erstellungsagent zugreifen kann, und den "Pfad zu benutzerdefinierten Testadaptern" festlegen. Oder installieren Sie die NUnit-Testadaptererweiterung für VS auf dem Erstellungsagenten und geben Sie "/ UseVsixExtensions: true" in "Visual Studio Test \ Andere Konsolenoptionen" ein.

+0

Danke Eddie. Ich habe bereits versucht, die Adapter-Assembly in den gleichen Ordner wie die Test-Assembly zu kopieren und den "Pfad zu benutzerdefinierten Test-Adaptern" ohne Glück einzustellen, vielleicht habe ich etwas übersehen. Leider kann ich die Erweiterung NUnit Test Adapter nicht installieren, da ich Visual Studio Team Services (auch Visual Studio Online genannt) verwende –

+0

@RuiJarimba Wie viele Dateien kopieren Sie? Können Sie einen Screenshot für alle Dateien im Artefaktordner freigeben? –

+0

Entschuldigung für die späte Antwort. Ich habe mein Problem gelöst und die Lösung geposted, vielen Dank für die Hilfe :-) –

0

Mein Problem war, dass ich überhaupt keinen Tester für NUnit installiert hatte, da ich Reesharper Tester benutze.

Daher war meine Lösung so einfach wie das Hinzufügen des Nuget-Pakets "NUnit3TestAdapter" version = "3.4.0" zu meinem Testprojekt.

In visualstudio.com (VS online) "Nuget wiederhergestellt Adapter werden automatisch gesucht." und Sie brauchen/sollten keinen Pfad für "Custom Test Adapters" angeben - Ich weiß nicht, ob dies auch für NUnit Testadapter Version 2 funktioniert.

+0

Bitte beachten Sie, dass ich die Tests nach einem DEPLOYMENT ausführen möchte, nicht als Teil eines Builds. Bitte lies meine Frage, dort sind alle Details angegeben. –

Verwandte Themen