2 Stimmen

Nur einen Teil der Menge aller Tests mit MSTest ausführen

Ich würde gerne wissen, ob es irgendwelche einfach Möglichkeit, mit MSTests eine bestimmte Kategorie von Tests durchzuführen. Ich habe derzeit einige Unit- und Integrationstests. Im Allgemeinen möchte ich nur Unit-Tests ausführen.

Ich weiß, dass man jeder Testmethode eine Kategorie zuordnen kann, aber nach dem, was ich gesehen habe, scheint das nur nützlich zu sein, wenn man verschiedene Testlisten erstellen will. Das scheint nicht sehr nützlich zu sein, da ich für jeden neuen Test diese Liste aktualisieren müsste.

Ich habe auch versucht, Integrationstests in ein Projekt und Unit-Tests in ein anderes zu packen, aber ich kann nur 3 Optionen für die Ausführung von Tests sehen: Lösungstests, kontextübergreifende Tests und Tests mit Auswirkungen, also ist das wohl nicht sehr hilfreich.

Wie macht ihr das?

Gracias

5voto

Für alle, die VS2012 jetzt zweieinhalb Jahre, nachdem diese Frage ursprünglich gestellt wurde, verwenden, können Sie auf Test->Fenster->Test Explorer klicken und dann auf das kleine Baum-/Hierarchie-Symbol links neben dem Suchfeld klicken und Ihre Tests gruppieren und die Gruppierung nach "Traits" wählen - anscheinend bedeutet "Traits" "TestCategories". Dann können Sie mit der rechten Maustaste auf die Gruppierungen klicken, um Ihre Tests auszuführen/zu debuggen.

Wenn Sie es vorziehen, können Sie auch zur Befehlszeile wechseln und Tests nach Kategorien ausführen. Ich ziehe es jedoch vor, Tests mit einem GUI-Testrunner auszuführen, damit ich nicht zur Befehlszeile wechseln muss und damit ich auf Tests klicken kann, um direkt zu dem betreffenden Testcode zu gelangen. Die Anleitung dazu finden Sie hier: http://msdn.microsoft.com/en-us/library/dd286683.aspx

0voto

Patrick Szalapski Punkte 7759

Wenn Sie ein ganzes Testprojekt ausführen ("Debuggen"), werden alle Tests im Projekt ausgeführt. Dies ist nützlich, wenn Sie Ihre Tests streng unterteilen.

Andernfalls müssen Sie Testlisten (im Menü Test) verwenden, was bei mir nie gut funktioniert. Sie scheinen manchmal automatisch überschrieben zu werden.

0voto

devlife Punkte 14317

In welchem Kontext versuchen Sie, die Tests durchzuführen? Während CI? Nach der Erstellung auf Ihrem Entwicklungssystem? Ich persönlich glaube, dass die Verwendung der Kategorien der beste Weg ist. Sie müssen keine Liste erstellen. Im Testlisteneditor können Sie nach Kategorien sortieren. Markieren Sie einfach alle Tests mit der Kategorie "UnitTest" (oder was auch immer), markieren Sie alle und führen Sie die ausgewählten Tests aus.

Wenn Sie sie in verschiedenen Projekten haben, können Sie sie außerdem nach Projekten gruppieren und alle im Unit-Test-Projekt auswählen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X