Wie funktioniert NUnit (und MSTest) behandeln Tests, die statisch / Umgebungsvariablen ändern?

StackOverflow https://stackoverflow.com/questions/154180

Frage

Ich habe einige Code, der das gemeinsame Gateway Muster verwendet eine Umkehrung der Steuerbehälter zu implementieren. Ich habe mehrere hundert NUnit Unit-Tests, die den Code-Übungen, die dieses IOC verwendet. Sie alle arbeiten (auf meinem Rechner!), Aber ich bin besorgt, dass diese Tests könnten unter Last fehlschlagen. Ich glaube mich zu erinnern, dass NUnit (und MSTest) versucht, Tests parallel auf mehreren Threads zu laufen (was definitiv Rennbedingungen auf dem statischen / Shared-Gateway auslösen würde), aber ich kann keine Dokumentation finden, der sagt, was tatsächlich passiert. Meine Erfahrung ist, dass NUnit die Tests laufen sequenziell zu sein scheint. Meine Frage ist, ob NUnit (oder MSTest) je Unit-Tests parallel laufen? Wenn ja, unter welchen Bedingungen? Und ich kann dies über eine entsprechende Konfiguration Option deaktivieren?

War es hilfreich?

Lösung

Update:

Visual Studio 2010 eingeführt, um die Fähigkeit, Tests parallel laufen zu lassen.

Hier ist ein Schritt für Schritt Artikel darüber, wie dies zu ermöglichen.

MSTest:
So nach David Williamson, von Microsoft Visual Studio Team System, auf diesen Beitrag in den MSDN-Foren:

  

Tests absolut laufen nicht in   parallel, wenn in VS laufen oder über   MSTest.exe. Wenn sie in einem Lauf   Belastungstest durch VS, dann ist das ein   andere Geschichte. Grundausführung,   jedoch immer seriell.

Auch Tests laufen mit MSTest jeweils Lauf eines anderen Thread, um mit um sicherzustellen, dass Sie für jeden Test eine reine Weste haben. Es gibt keine Möglichkeit, dieses Verhalten zu deaktivieren.

NUnit:
NUnit führt alle Tests auf dem gleichen Thread.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top