Ich habe eine Situation, in der ich einen Komponententest verwende, um ein externes Tool auszuführen, das einen Test durchführt. Ich kann anhand des Exit-Codes des Tools feststellen, ob der Test bestanden, fehlgeschlagen oder abgelaufen ist.Programmgesteuertes Timeout eines Tests in MSTest
Gibt es eine Möglichkeit, dass ich den Komponententest nicht bestehen kann, wodurch das Testergebnis auf Timeout gesetzt wird und nicht fehlschlägt?
Ich habe versucht, eine TimeoutException zu werfen, aber dies hat das gleiche Ergebnis wie die Verwendung einer Assert.
Bearbeiten: Wir verknüpfen die Unit-Tests mit Testfällen in TFS. In Microsoft Test Center kann ein Test in einem Testlauf viele Zustände haben. Einer davon ist der Timeout-Status. Ich versuche, meinen Test zu versagen, so dass er in diesem Zustand korrekt angezeigt wird und sich nicht mit den fehlgeschlagenen Testfällen verbindet.
Wenn Ihr Test auf einem externen Tool setzt dann einige Arbeit zu tun. Im Idealfall würden Sie sich über das externe Tool lustig machen, damit Sie * Ihren * Code testen können, unabhängig davon, ob * ihr * Code wie erwartet funktioniert. –
@Jamie: Das ist pingelig. Er macht wahrscheinlich einen Integrationstest, aber (wie viele andere Leute) nennt es einen Komponententest, nur weil er in einem Testläufer läuft. – erikkallen
Er könnte @erikkallen sein, aber er könnte auch beabsichtigen dies als Unit Test zu schreiben, aber er versteht es nicht richtig zu spotten oder zu wissen, dass es sogar eine Sache ist. Im letzteren Fall könnte mein Kommentar das OP in eine nützliche Richtung lenken, wenn nicht, würde es keinen Schaden anrichten. –