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();
}
Mobile version