时间:2011-01-06 17:48:18

标签: msbuild nunit cruisecontrol.net nant

2 个答案:

答案 0 :(得分:4)

你使用的是什么版本的nunit? 2.5.7 / 2.5.8版本中存在一些问题导致nunit-agent在测试结束时挂起。我有这个问题,并恢复到旧版本的nunit,挂起问题消失了。在2.5.9的发行说明中,他们表明修复了“602761 nunit-agent在测试完成后挂起”。我还没有升级到2.5.9,但这可能会解决您的问题。

答案 1 :(得分:1)

你应该做的第一件事是尝试在本地复制问题。您的测试是否正常运行并且干净地退出?在本地运行它们,看看nunit进程是否会挂起。

如果您的测试在本地运行正常,请尝试找出构建服务器停止的测试或是否正在完成所有测试。如果您的构建脚本无法在本地运行,则诊断起来会有点困难。

在我们的测试充斥着线程代码的那一天,几乎总是这样的情况:测试(或测试中的代码)正在创建线程,然后无法关闭它们,导致NUnit闲置。线程问题令人恼火,因为它们是非确定性的,只有在具有更多内核的机器上运行时才能看到(例如,构建服务器)。

如果你有线程/外部依赖的测试,我会先尝试禁用它们(600个测试需要一分钟才能运行表明涉及外部依赖和/或线程,因为单元测试通常需要~1ms跑步)。