Wiederholen Sie die mstest-test mehrmals ausgeführt
Einige meiner mstest unit tests helfen bei der Erkennung von multi-threading-race-Bedingungen, und als solche sind Sie sehr nützlich, wenn Sie laufen oft in einer Zeile, aber ich will nur tun Sie dies für bestimmte Testläufe -- nicht die ganze Zeit.
Gibt es eine Möglichkeit zu konfigurieren, mstest (im testlisten-Editor vorzugsweise) führen Sie einen test mehrmals?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich brauchte, etwas ähnliches zu tun, so kam ich auf eine Lösung für dieses.
Es ist nicht einfach, aber wenn einmal alles eingerichtet ist, können Sie es wiederverwenden, über Projekte. Ich habe auch einen download dieser code ist auf GitHub (https://github.com/johnkoerner/MSTestLooper), aber für den Fall, dass geht Weg, an einem gewissen Punkt, hier ist, wie ich es Tat.
Zunächst erstellen wir ein Attribut, das wir anwenden, um unsere Klasse zu sagen, es laufen alle tests mehrfach. All dies in einer separaten assembly, weil die DLL braucht, um zu Leben an einem besonderen Ort.
Als Nächstes haben wir das erstellen eines benutzerdefinierten test-Klasse Durchführung Klasse:
Schließlich fügen wir eine benutzerdefinierte invoker, das ist, wo wir die Schleife:
Den HelperTestResults Klasse baut sich gerade strings für die Ausgabe, können Sie handhaben, wie Sie wollen, und ich will nicht, dass code, da wird es nur machen diesem post sehr viel länger.
Kompilieren diese in eine DLL und dann kopieren Sie es auf
Erstellen Sie einen Registrierungseintrag für die Klasse:
Nun, dass Sie all das getan haben, können Sie endlich mit der Klasse:
Beachten Sie, dass unsere test-Methode akzeptiert einen parameter, die kommt von dem test-Greifer. Ich zeige auch, dass diese mittels eines data-driven test, um zu zeigen, können Sie kombinieren die zwei zusammen zu generieren große Permutationen über Ihre Daten-sets.
Erstellen Sie einen test, um zu Spinnen, aus ein paar threads. Die Test-Liste können Sie nicht mehrere Einträge für den gleichen test. Könnten Sie zuordnen, aber die multi-Thread-test, um seine eigene Liste und rufen Sie nur, wenn Sie ausführen möchten, die bestimmten test.
Ich denke, die Antwort ist Nein.