我有一些产生无限循环的代码。现在我需要编写一个在大约200ms后失败的测试。 200ms将指示代码处于无限循环中。
例如:
public void CodeUnderTest()
{
while(true)
{
}
}
答案 0 :(得分:17)
怎么样:
Task.Create(CodeUnderTest).Wait(TimeSpan.FromSeconds(1));
或:
Task.Factory.StartNew(CodeUndertest).Wait(TimeSpan.FromSeconds(1));
或:
Task.Factory.StartNew(() => CodeUndertest(arg1,arg2,arg3...)).Wait(TimeSpan.FromSeconds(1));
答案 1 :(得分:14)
使用MSTest时,您可以使用属性
[TestMethod]
[Timeout(200)]
请参阅How to force tests to stop running
您可以设置执行测试或测试运行的时间限制 遵守。您可能需要这样做,例如,如果您 在测试实验室工作,需要在一定时间内完成测试运行 一天。
使用时间限制的另一种情况是无响应代码。