5

läuft Kann ich die Wiedergabelistendatei benutzen, um Tests von der Befehlszeile mit MSTest.exe zu laufen? Ich habe versucht, folgende Befehlszeile aber es funktioniert nicht mit und Fehler -Wie man Tests in einer Wiedergabelistendatei von der Mstest-Befehlszeile

mstest.exe /testmetadata:test.playlist 
The file 'test.playlist' has unknown format and cannot be converted to the current version. 

Note that mstest version is 11.0.50727.1 and I am using VS 2012 

meine Playlist-Datei enthält nur einige XML-Elemente

<Playlist Version="1.0"> 
    <Add Test="MyTest" /> 
    <Add Test="AnotherTest" /> 
</Playlist> 

Antwort

6

mstest.exe ist veraltet. Für Visual Studio 2012 SP1 und höher verwenden wir vstest.console.exe. Ihre playlist Datei wird immer noch nicht ausgeführt. Es gibt eine Feature-Anforderung, die bei Microsoft geöffnet ist.

Wir sind jetzt in einem schlechten Zustand mit Testlisten auch veraltet. Die einzige Möglichkeit, zwischen verschiedenen Tests zu unterscheiden, besteht darin, Test Categories

zu verwenden. Eine andere Möglichkeit wäre, zu einem anderen Unit-Testing-Framework zu wechseln.

Ich wünschte es gäbe eine bessere Antwort.

+0

Ich würde Ich möchte wissen, wie es dir ging. Ich denke ernsthaft darüber nach, auch in ein anderes Framework zu wechseln, MS-Tests sind klobig, auch wenn es perfekt funktioniert, was oft nicht der Fall ist. –

+0

Wir verwendeten Testkategorien und liefen nur mit den DLLs und den Testkategorien als Parameter. Es ist dumm! Es gibt andere Probleme mit MS Test, wenn Sie es mit einem DI-Framework wie Unity verwenden. Wenn es keine feste Referenz gibt, glaubt MS Test, dass es sich besser auskennt und diese Referenz nicht in das Ziel-Testverzeichnis kopiert, so dass Sie nicht alle Referenzen haben, die Sie benötigen. –

1

könnten Sie .orderedtest anstelle von .playlist

bestellten Tests erstellt und in VS2013 bearbeitet werden können. Das Format ähnelt ansonsten .playlist, enthält jedoch Links zum Testen von GUIDs. Daher ist es programmatisch schwieriger zu ändern.

Von Befehlszeile laufen mit:

MSTest.exe /testcontainer:mylist.orderedtest 

Nicht sicher, ob es in VS2012 funktioniert.

1

Wie Nate Zaugg erwähnt, gibt es derzeit keine Möglichkeit, es zu tun, aber es ist ziemlich einfach, eine Liste von Tests programmgesteuert zu erstellen.

Die Playlist-Datei ist nur XML. Es hat einen Wurzelknoten mit Kindknoten. Sie können das "Test" -Attribut jedes Knotens lesen, um die FullyQualifiedNames aller Tests zu erhalten, die Sie ausführen möchten. Sie können wahrscheinlich zu diesem Zeitpunkt den Namespace und die Klasse vor den Testnamen entfernen.

Wenn Sie vstest.console.exe verwenden können (was Sie mit VS 2012 tun sollten), können Sie die folgenden Anweisungen befolgen. vstest.console.exe hat den optionalen Parameter "TestCaseFilter", mit dem Sie jeden in der Wiedergabeliste genannten Test aufrufen können. Es ist nicht besonders elegant, aber es sollte funktionieren.

Also, für einige allgemeine Tests "MethodName1", "MethodName2" und "MethodName3", die in der myTestFile.dll sind und myOtherTestFile.dll würden Sie den folgenden Befehl erzeugen:

vstest.console.exe myTestFile.dll myOtherTestFile.dll /Tests:MethodName1,MethodName2,MethodName3" 
Verwandte Themen