Timeboxing NUnit 单元测试

Timeboxing NUnit Unit Tests

我继承了一个代码库,它有一些错误的签入 -- 一些单元测试完全挂起,我不能 运行 整个单元测试套件,因为它总是会卡住在具体的测试上。 -- 我想盘点那些现在挂掉的测试。

在我的所有测试中设置全局超时的正确方法是什么,以便每个测试都被限制在特定的时间量内。 (即,如果我将它设置为 1 分钟,并且测试需要 61 秒,该测试会自动 中止 并标记为失败? - 然后测试 运行ner 应该移动立即进行下一个测试。)

我正在使用 Visual Studio 2015 Update 1、NUnit 2.6.4 和 Visual Studio 的 NUnit 2.x 测试适配器。

我相信你想在这里使用 timeout

例如

[Test, Timeout(2000)]
public void PotentiallyLongRunningTest()
{
    ...
}

NUnit 文档似乎表明它可以在程序集级别设置。在 AssemblyInfo.cs:

第一个:

using NUnit.Framework; 

然后:

[assembly: Timeout(1000)]