Was führt dazu, dass vstest nach erfolgreicher Ausführung aller Tests hängen bleibt?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Was führt dazu, dass vstest nach erfolgreicher Ausführung aller Tests hängen bleibt?

Post by Anonymous »

Wir verwenden das Visual Studio-Testframework und C# zum Schreiben von Komponententests und sind kürzlich auf ein Problem gestoßen, bei dem vstest.console.exe manchmal hängen bleibt, nachdem alle Tests ausgeführt wurden. Alle Tests werden bestanden, aber dann bleibt vstest.console.exe ewig da und wartet auf etwas, anstatt zu beenden.
Dies hängt wahrscheinlich mit den jüngsten Änderungen zusammen, bei denen wir begonnen haben, eine Bibliothek eines Drittanbieters zu verwenden. Wenn wir die Tests im Debug-Modus ausführen, können wir sehen, dass mehrere von dieser Bibliothek erstellte Threads immer noch hängen bleiben, nachdem alle Tests bereits bestanden wurden.
Um das Problem besser zu verstehen, habe ich versucht, das Problem wie im Testcode unten gezeigt zu reproduzieren. Es scheint jedoch, dass vstest.console.exe nach Abschluss eines Tests wie diesem gerne beendet wird. Es scheint sich nicht um irgendwelche „wilden“ Threads zu kümmern, die noch laufen. Meine Frage lautet also: Was führt dazu, dass vstest nach der Ausführung aller Tests auf Threads wartet oder nicht wartet? Mit anderen Worten, wie sollte ich den folgenden Test ändern, damit vstest nach Abschluss hängen bleibt?

Code: Select all

[TestMethod]
public void FreezeVSTest()
{
var thread = new Thread(
new ThreadStart(
delegate
{
while (true)
{
Thread.Sleep(1);
}
}));
thread.Start();
}
(Beachten Sie, dass ich nicht frage, wie der Test hängen bleibt. Ich weiß, dass das Hinzufügen eines thread.Join() dies bewirken würde. Die Frage betrifft, ob vstest selbst hängen bleibt, nachdem der Test bestanden wurde.)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post