如何让UnitTest在一段时间后自动失败?

时间:2008-12-20 17:45:52

标签: unit-testing nunit

我正在使用NUnit(2.4.6),我的构建/测试之夜已经完成了Team City 4.我已经联系了团队城市,他们已经告诉我他们无法处理这个问题。所以,我在这里。

我想要的是设置我的测试以照常进行测试,但是在他们挂断的情况下...原因不明(这可能会发生......)......我不希望他们继续但要失败。这是必需的,因为有时我注意到我的构建之夜已经完成,并且当测试到达时,一些测试挂起了一整夜。

你会怎么做?

请记住,我知道Nunit 2.5(Beta)有MaxTime attribute但是我必须升级+超过800个单元测试...我想要整个测试的东西,而不必升级到了这个测试版本。

3 个答案:

答案 0 :(得分:2)

TC对每个构建配置都有一个执行超时,如果超出构建配置就会失败。 它在一般设置中“如果运行时间超过”则失败。 这不是每单元测试,但我认为这对你的场景来说已经足够了。

答案 1 :(得分:1)

如果你没有设置升级到2.5,那么NUnit样本中有一个MaxTimeDecorator,如果花费的时间超过指定的时间,它将无法通过测试。显然,当测试挂起时,这将无济于事,但您可以修改示例,以便在其自己的线程中生成测试并且经常回调以查看是否已超出时间限制。然而,这将很快变得相当复杂。

答案 2 :(得分:0)

我会按照你的建议使用MaxTime,这是标准的做法 - 为什么要为了避免更新测试本身而创造新的东西呢?

如果问题只是更新测试所花费的时间,我个人可能会敲一些快速而又脏的程序来解析源文件并添加属性。 可能有更好的方法来更新代码(生成器或其他),但这可行。

除非有令人信服的理由不使用NUnit 2.5?