以编程方式在MSTest中超时测试

Chr*_*sto 6 c# tfs mstest

我有一种情况,我正在使用单元测试来执行执行测试的外部工具.我可以从工具的退出代码中确定测试是通过,失败还是超时.

有什么方法可以让单元测试失败,将测试结果设置为超时而不是失败?

我尝试过抛出TimeoutException,但这与使用Assert有相同的结果.

编辑: 我们将单元测试与TFS中的测试用例相关联.在Microsoft测试中心,测试运行中的测试可以有许多状态.其中一个是超时状态.我试图使我的测试失败,以便它在这种状态下正确显示,并且不会与失败的测试用例混在一起.

Mar*_*rko 16

您可以在Test属性中添加Timeout(毫秒)来设置每个测试的超时限制...

[TestMethod, Timeout(2000)]
Run Code Online (Sandbox Code Playgroud)

如果执行时间超过2秒,测试将失败.

谢谢Marko


Dar*_*rov 1

在单元测试中,您可以使用两种颜色:绿色和红色。没有超时颜色。

所以我想如果您的外部工具超时,您可以手动使测试失败:

Assert.Fail("External tool used to do this test timed out");
Run Code Online (Sandbox Code Playgroud)

检测外部工具超时的方法当然取决于您正在使用的外部工具以及从单元测试中调用它的方式。