4

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

我想要的是设置我的测试以像往常一样进行测试,但如果他们挂断了......由于未知原因(这可能会发生......)......我不希望他们继续但失败. 这是必需的,因为有时我注意到我的构建之夜已经完成,并且当测试到达时,一些测试会挂断整个晚上。

你会怎么做?

请记住,我知道 Nunit 2.5(Beta)具有MaxTime 属性,但我必须升级 + 进行 800 多个单元测试......我想要整个测试的东西,而不必升级到这个 beta 版本。

4

3 回答 3

2

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

于 2008-12-21T17:04:38.037 回答
1

如果您坚决反对升级到 2.5,则 NUnit 示例中有一个 MaxTimeDecorator 如果花费的时间超过指定时间,它将无法通过测试。显然,当测试挂起时这将无济于事,但是您可以修改示例,以便它在自己的线程中生成测试并每隔一段时间进行一次回调以查看是否超过了时间限制。然而,这很快就会变得相当复杂。

于 2008-12-22T06:31:10.843 回答
0

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

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

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

于 2008-12-20T18:40:37.580 回答