23

我有一些产生无限循环的代码。现在我需要编写一个大约 200 毫秒后会失败的测试。200ms 表示代码处于无限循环中。

例如:

public void CodeUnderTest()
{
   while(true)
   {

   }
} 
4

2 回答 2

19

使用 MSTest 时,您可以使用属性

[TestMethod]
[Timeout(200)]

请参阅如何强制测试停止运行

您可以设置执行测试或测试运行的时间限制。例如,如果您在测试实验室工作并且需要在一天中的某个时间完成测试运行,您可能需要执行此操作。

使用时间限制的另一种情况是无响应代码。

于 2012-08-27T16:12:34.160 回答
18

关于什么:

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));
于 2012-08-27T16:08:57.323 回答