2009-10-14 15 views
14

Aus Gründen, auf die ich nicht näher eingehen werde, verwenden alle unsere Komponententests das VSTS-Testframework. Ich möchte jetzt ein MSBuild-Skript erstellen, das die Tests ausführt, aber ich möchte mstest.exe nicht aus verschiedenen Gründen verwenden (es ist langsamer, erfordert die Installation von Visual Studio überall, ich muss testrunconfig usw. pflegen)Ausführen von VSTS-Tests ohne mstest.exe

Ich habe gesehen, dass TestDriven.net und TeamCity VSTS-Tests 'NUnit style' ausführen können, ohne mstest.exe zu verwenden. Ist Ihnen ein eigenständiges Befehlszeilen-Dienstprogramm bekannt?

+0

Das war für mich auch ein Ärgernis, also habe ich es als "User Voice" -Anfrage angesprochen. Wenn Sie dies lesen und stark fühlen, können Sie dafür stimmen? https: //visualstudio.uservoice.com/forums/121579-visual-studio/suggestionen/4619858-mstest-api –

Antwort

19

Sie können Team System Tests (MSTest) in NUnit ausführen, wenn Sie einen speziellen NUnit Addin verwenden, die der MS-Test erkennen Attribute (Testclass, etc).

Genaue magische Software hat eine open-source "test-adapter", die dies tun kann.

UPDATE: Ich habe Exact Magic Msts NUnit Adapter für NUnit 2.5.2 überarbeitet.

+1

Sieht so aus, als ob ich das suche, aber es funktioniert nicht mit der neuesten Version von NUnit (2.5.2). Ich habe die Version versucht, auf der dies ausgeführt werden soll (2.4.6), aber es sieht so aus, als würde es auf meinem System nicht funktionieren (Windows 7). –

+0

Oft sind NUnit-Addins an das Framework gebunden, unter dem sie kompiliert wurden. Hat damit zu tun, wie NUnit und das Addin Abhängigkeiten auflösen. Wenn sie die Quelle bereitstellen, sollten Sie in der Lage sein, mit einer aktualisierten Referenz neu zu kompilieren. Das setzt voraus, dass sie mit den 2.4.6-Kernbaugruppen nicht etwas Bestimmtes tun, obwohl sich die Kernschnittstellen größtenteils nicht wesentlich verändert haben. Wenn ich die Zeit finde, könnte ich es versuchen. – bryanbcook

+0

Ich fing an, es zu untersuchen, scheint, dass sie einige einschneidende Änderungen in 2.5.2 gemacht haben, so dass es etwas Refactoring benötigen würde, um den Adapter zum Funktionieren zu bringen. –

0

Es ist möglich, MSTests auszuführen, ohne Visual Studio zu installieren. Siehe how-do-i-use-mstest-without-visual-studio.

Ich tat dies, damit ich meine Tests als Teil meines CI-Prozesses ausführen konnte. (Ich verwende CC.NET für meine CI-Lösung).


Ich bin in einer ähnlichen Situation wie Sie, dass ich will TestDriven.NET verwenden, um Code-Coverage-Statistiken zu erhalten. Aber ich stoße auf Probleme. Mein erstes Problem ist, dass ich AssemblyInitialize Attribute verwende, um eine Datenbankverbindung zu initialisieren. Dies wird von NUnit nicht unterstützt, so dass etwa die Hälfte meiner Tests fehlschlägt, während sie unter MSTest funktionieren.

So scheint es, dass die Übersetzung von Tests von einem Test-Framework zu einem anderen Tücken hat. Wenn Sie sich dessen bewusst sind, dann gehen Sie weiter, aber es könnte besser sein, zu versuchen, in einem Test-Framework konsistent zu bleiben.

+0

Danke, ich bin mir bewusst, in der Lage zu sein msstest.exe außerhalb von VS, aber ich möchte überhaupt nicht MSTest verwenden, wegen seine vielen Probleme. –

+0

Okay - also kannst du MSTest komplett aufgeben? Konvertiere alle deine Tests in NUnit? Es scheint nur so, als wäre eine gemischte Testumgebung schlechter als MSTest. – quip

1

Es scheint, als ob TeamCity einfach Gallio nutzt, um VS-Tests durchzuführen. Gallio erscheint msbuild Integration zu haben und klingt perfekt, aber nach näherer Betrachtung scheint es, dass es genau wie MSTest ein VS installieren würde erfordern, wie es auf MS Ex abzuhängen scheint:

The plugin enable condition was not satisfied: '${process:DEVENV.EXE} or 
${process:VSTESTHOST.EXE} or 
${process:QTAGENT.EXE} or 
${process:QTAGENT32.EXE} or 
${process:QTDCAGENT.EXE} or 
${process:QTDCAGENT32.EXE}'. 
Host process exited with code: 0 

Dass gesagt wird, es klingt wie zumindest eine Person hat bekommt es funktioniert:

Christoph De Baene - Running MSTest without Visual Studio

0

Wir VSTS laufen Tests msbuild mit TestToolsTask auf einem Server Cruise Control. Dies verwendet nicht die ausführbare MSTEST-Datei - die Bedingung, nach der Sie fragen -, sondern eine Vielzahl von TFS-Abhängigkeiten.

Beachten Sie, dass wir Tests aus dem VSTS-Testframework für NUnit migrieren, hauptsächlich weil wir Erweiterungen für NUnit erstellen können, um nützliche Aufgaben auszuführen.

Verwandte Themen