3

Ich habe ein Unit Test App (Universal Windows) -Projekt in Visual Studio 2015 hinzugefügt. Es erkennt und führt alle Testfälle im Test Explorer in IDE korrekt aus. Wenn MSTest.exe über die Befehlszeile ausgeführt wird, wird jedoch die Meldung "Keine Tests zum Ausführen" angezeigt. Befehl ausgeführt wirdMSTest.exe findet keine Testfälle über cmd, funktioniert aber in VS2015 IDE

MSTest.exe /testcontainer:"F:\Projects\MyUnitTests\bin\Release\MyUnitTests.exe" /resultsfile:F:\testResults.trx 

gleiche Ergebnis, wenn verwendet 'vstest.console.exe' als here vorgeschlagen.

Auch die meisten Beispiele online bieten eine DLL zu MSTest. Aber es gibt keine DLL in Ausgaben in vs2015 erstellt. Brauchen Sie dies von Skript in Jenkins ausgeführt werden. Hat jemand anderes dieses Problem konfrontiert?

Antwort

0

Wenn Sie gegen die exe ausführen, sollten Sie eine Warnung ähnlich dieser, die Sie einige Hinweise gibt:

Warnung: Unit-Tests für Windows Store und Windows Phone-Anwendungen können nicht laufen außerhalb appcontainer sein. Erstellen Sie ein App-Paket und führen Sie Tests im Appcontainer-Modus aus. http://go.microsoft.com/fwlink/?LinkId=254169

Um die universelle Testprojekt zu verwenden, müssen Sie eine App-Bundle erstellen und dann die Tests gegen die volle Funktionalität. Um das Bündel zu erstellen, klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Store=>Create App Packages.

Sie erstellen ein lokales App-Paket, sodass Sie No für die Aufforderung zum Hochladen in den Windows-Store auswählen können.

Als nächstes werden Sie den Ausgabeort, Version, auszufüllen gefragt ...

Auf diesem Bildschirm, stellen Sie sicher, dass Sie wählen Never für die Generate app bundle Option.

Nachdem Sie auf "Erstellen" geklickt haben, öffnen Sie die Befehlszeile zu dem Speicherort, an dem die App-Bundles erstellt wurden. Sie müssen auch das Zertifikat installieren. Sie können dies über die Befehlszeile mit certutil:

certutil -addstore "Root" .\UnitTestProjectName_1.0.0.0_x86_Debug.cer 

Schließlich, jetzt können Sie Ihre Tests ausführen, um die vstest.console.exe Befehlszeilen gegen das App-Paket mit:

vstest.console.exe .\UnitTestProjectName_1.0.0.0_x86_Debug.appx /InIsolation 

This blog post von Microsoft mehr Informationen hat und einige andere Tipps zur Fehlerbehebung. Obwohl der Blogpost für die Beta von VS11 markiert ist, scheint es, dass das meiste davon immer noch gilt.

+0

Dank @John-Koerner. Es funktioniert über cmd. Ein paar Zweifel. 1. So, jetzt gibt es keine Möglichkeit, eine DLL als testSource für vstest.console.exe zu verwenden (wie von den meisten Dokumenten/Blogs angezeigt) 2. Wenn ich vstest.console.exe über Jenkins ausführen, erhalte ich einen Fehler * "Testlauf für Komponententests für die Windows Store-App konnte nicht gestartet werden: Komponententests für Windows Store-Apps können nicht von einem Dienst oder einem nicht interaktiven Prozess ausgeführt werden. Führen Sie Komponententests aus einem interaktiven Prozess aus." *. 3. Gibt es eine andere Testprojektvorlage, die eine DLL erstellt (möglicherweise in VS Enterprise)? Ich verwende VS Community Version. –

+0

Wenn Sie nur eine Komponententest-DLL wünschen, gibt es andere Projektvorlagen, die die DLL erstellen. Wenn Sie speziell das Universal benötigen, müssen Sie diesen Ansatz verwenden. Da es in Jenkins nicht läuft, da dieser Unit-Test-Typ UI erstellt, müssen Sie ihn als interaktiven Benutzer ausführen. –