2013-02-17 2 views
6

Ich habe ein Szenario skizziert (a.k.a Szenario Vorlage) und ich möchte meine Tests mit dem VS 2012 Test Explorer auflisten. Die Standard-Testgruppierung erfolgt über den Namen "Projekt" - wenn ich mich daran halte, sind meine Tests, die aus Szenariokonturen stammen, in der Gruppe "Extern" und nicht unter der Gruppe meines Projekts.Warum werden Szenariokonturen im VS 2012 Test Explorer als "Extern" angezeigt?

Warum ist das und gibt es eine Lösung/Workaround?

Mein Szenario ist, dass ich alle meine Tests für ein bestimmtes Projekt mit dem Test Explorer ausführen möchte. Das gleiche Merkmal für alle von ihnen ist albern und anfällig für menschliche Fehler.

Meine Lösung hat 10 solcher Projekte mit der Idee, bald weitere hinzukommen. Wenn Sie also das Szenario eines Projekts unter "Extern" skizzieren, kann dies dazu führen, dass jemand sie vermisst oder sich ein vom Szenarioentwurf generierter Test zu einem anderen Projekt ergreift.

UPDATE

GitHub Benutzer Shashi (https://github.com/shashiprabhakar) hat ein Problem mit den SpecFlow Beiträger angemeldet: https://github.com/techtalk/SpecFlow/issues/275. Vielen Dank, Kumpel! Ich habe damit begonnen, es zu verfolgen, wenn dort ein Fix/Workaround vorgeschlagen wird, werde ich es hier als Antwort posten.

+0

Ich habe die Frage auch in der SpecFlow Google-Gruppe veröffentlicht (https://groups.google.com/forum/?fromgroups=#!topic/specflow/uWK6NayuBzc). Ich werde Updates hier posten, wenn eine Antwort/Lösung aus der Gruppe erscheint. –

Antwort

6
<specFlow> 
    <unitTestProvider name="..." /> <!-- this you have already --> 
    <generator allowDebugGeneratedFiles="true" /> <!-- this is the important setting --> 
</specFlow> 

Dies ist die Konfiguration, die Gaspar Nagy in der App.config-Datei empfohlen hat. Die "allowDebugGeneratedFiles" scheint das einzige Ticket zu sein. Weitere Informationen zum Tag und seinen Unter-Tags finden Sie unter official SpecFlow configurations page. Die Einstellung auf TRUE ist jedoch nur der erste Schritt.

Wie von Gaspar vorgeschlagen, besteht der nächste Schritt darin, im Projektmappen-Explorer mit der rechten Maustaste auf die Projektdatei zu klicken und die Option Feature-Dateien regenerieren auszuwählen.

NB: Was passiert eigentlich, wenn Sie den allowDebugGeneratedFiles-Flag gesetzt und dann die .feature Dateien regenerieren, entfernt SpecFlow einfach die #line hidden und #line number aus der .feature.cs Datei.

Schließlich würde ich persönlich vorschlagen, Visual Studio 2012 vor oder nach dem Wiederaufbau neu zu starten. Wenn ich die obigen Schritte ausprobierte, zeigte der Test-Explorer die Tests erst nach dem Neustart von Visual Studio korrekt an.

PS: Gaspar stellte fest, dass, wenn die allowDebugGeneratedFiles Flag (= true) angehoben wird, dann wird der "Run SpecFlow Szenarien" Option nicht mehr funktionieren. Allerdings konnte ich diese Option verwenden, indem ich mit der rechten Maustaste auf die Projektdatei klickte. Die Verwendung dieser Option in einer .feature funktionierte für mich nicht, noch bevor ich Gaspars Vorschlag ausprobierte, so dass das der Nachteil sein sollte, auf den er sich bezog.

PS # 2: Gaspar erwähnt auch, dass es keinen solchen Nachteil geben wird in SpecFlow 1.9.2 entfernt werden.

0

Als Gaspar (https://github.com/gasparnagy) vorgeschlagen in einem Kommentar zu dem Thema GitHub (https://github.com/techtalk/SpecFlow/issues/275) mit der rechten Maustaste auf die Projektdatei im Projektmappen-Explorer und dann „Run SpecFlow Szenarien“ ist eine ausgezeichnete Abhilfe für das Projekt Gruppierung der Auswahl Testen Sie den Explorer.

Ich kann überprüfen, ob der Vorschlag gültig ist - getestet mit SpecFlow 1.9.0.

Allerdings bleibt das Problem mit dem Test-Explorer und seiner seltsamen "externen" Gruppe von Tests, wo die Szenario-Gliederung-generierten Tests gestellt werden.

Ich werde diese Antwort aktualisieren oder eine neue veröffentlichen, wenn weitere Details ans Licht kommen.

Verwandte Themen