CC.NETBuildServer——如何找到根本没有完成的NUnit测试?

CC.NETBuildServer——如何找到根本没有完成的NUnit测试?,nunit,cruisecontrol.net,Nunit,Cruisecontrol.net,我有一套约1500个测试,它们通常在“合理时间”内运行和完成 然而,最近,我改变了部分代码以使用线程——现在我的构建不时会因为超时而失败。我想象一个线程拒绝死亡,构建会一直等到达到最大构建时间 我的问题是如何检测导致问题的测试 我可以激活一些日志记录来显示测试已经开始/完成吗?当然,我可以通过在每个测试方法中插入代码来完成,或者只是在夹具中插入代码,但这是我宁愿避免的大量工作。我建议升级到NUnit 2.5,并使用属性来装饰测试,指定每个测试运行时的最大值。例如,您可以将其放入AssemblyI

我有一套约1500个测试,它们通常在“合理时间”内运行和完成

然而,最近,我改变了部分代码以使用线程——现在我的构建不时会因为超时而失败。我想象一个线程拒绝死亡,构建会一直等到达到最大构建时间

我的问题是如何检测导致问题的测试


我可以激活一些日志记录来显示测试已经开始/完成吗?当然,我可以通过在每个测试方法中插入代码来完成,或者只是在夹具中插入代码,但这是我宁愿避免的大量工作。

我建议升级到NUnit 2.5,并使用属性来装饰测试,指定每个测试运行时的最大值。例如,您可以将其放入
AssemblyInfo.cs

[程序集:NUnit.Framework.Timeout(100)]
NUnit现在将在一个单独的线程中启动每个测试,并在超过其时间段时取消它。然而,这可能代价高昂,因此最好确定长时间运行的测试,然后删除程序集级属性,以支持测试夹具的时间段。您还可以在单个测试上覆盖此选项,为它们分配更多的运行时间


通过这种方式,您可以将超时/挂起检测从CruiseControl.Net移动到NUnit,并在报告中获取有关未正确完成的任务的信息。不幸的是,当CC.Net由于超时而不得不终止进程时,它无法获取此信息。

;比我希望的还要好!谢谢