我使用控制台运行程序 (xUnit 2.4.1) 来执行一组测试。如果某些测试需要很长时间才能完成,它们应该会失败,但似乎Timeout忽略了属性。
这是我应该失败的简单测试方法:
[Fact(Timeout = 1000)]
public void ShouldTimeout()
{
Thread.Sleep(15000);
}
Run Code Online (Sandbox Code Playgroud)
我使用选项执行 runner-parallel none以避免未定义的行为:
xunit.console.exe tests.dll -parallel none -method "Tests.TessClass.ShouldTimeout"
Run Code Online (Sandbox Code Playgroud)
我还添加[assembly: CollectionBehavior(DisableTestParallelization = true)]到我的程序集配置中。
但是,测试仍然成功完成并显示以下输出。
xUnit.net Console Runner v2.4.1 (64-bit Desktop .NET 4.5.2, runtime: 4.0.30319.42000)
Discovering: tests
Discovered: tests
Starting: tests
Finished: tests
=== TEST EXECUTION SUMMARY ===
tests Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 15,151s
Run Code Online (Sandbox Code Playgroud)
我错过了什么?并行化是否仍然没有被禁用,因此Timeout被忽略?