Ich habe Komponententest-Beispielcode, der im Grunde zwei Threads ausführt: der Hauptthread und ein anderer Thread, den ich starte, der die Testausführung nach einiger Zeit nicht bestehen sollte (das ist im Grunde ein Zeitüberschreitungs-Thread)Wie kann der Komponententest von einem anderen Thread abgebrochen werden?
Code ist wie folgt:
[TestClass]
public class SomeTestClass
{
[TestInitialize]
public void BeforeTest()
{
var task = new Task(abortIfTestStilRunsAfterTimeout);
task.Start();
}
[TestMethod]
public void TestMethod()
{
Thread.Sleep(5000);
}
private void abortIfTestStilRunsAfterTimeout()
{
Assert.Fail("timeout passed!");
}
}
Nun, ich hatte erwartet, dass die TestMethod()
Test nicht bestehen sollte, aber was passiert, ist eigentlich, dass die Aufgabe Thread, der die Assert.Fail
Verfahren läuft bekommt eine Ausnahme während der andere Thread läuft weiter und der Test bestanden.
ich nach einem Weg suchen, ist das Testverfahren
Was genau möchten Sie testen? – GolfWolf
Ich habe 100 Testfälle, die auf meinem System laufen. Dieses System ist eine Multithread-Netzwerkanwendung. Wenn die Testfalldosis meine App-Nachrichten in einer korrekten Reihenfolge senden soll und dann auf eine bestimmte Reihenfolge der Antworten wartet. – Tzahi
Wenn also ein Test mehr als 5000 ms dauert, würde es manuell fehlschlagen? – sll