Maven2 JUnit超时注解无效

5

我们在一个maven2项目中有很多测试,并使用cruisecontrol进行构建。然而,由于测试的注释中包含了超时时间,所以构建经常会挂起。

@Test(timeout = 5000)

被忽略了。 我尝试在本地运行maven,并重现超时被忽略的事实。

有没有办法重新激活测试的超时功能?

我目前在cruisecontrol中设置超时作为变通方法。然而这只意味着整个构建将被取消,而不仅仅是应该失败的测试。

备注: 似乎在maven 1中有一个属性可以激活junit超时,在maven 2中缺失。

1个回答

3
尝试设置forkedProcessTimeoutInSeconds参数,该参数属于Maven Surefire Plugin。如果将其设置为0,则会一直等待进程,永不超时;否则,在一定时间后会杀死分叉的测试进程。这似乎相当于Maven 1中的maven.junit.timeout测试属性,并将在Maven级别上“激活”超时(与注释不同)。请注意保留HTML标记。

谢谢您的输入。有什么想法为什么注释不起作用吗? - roesslerj
@roesslerj 我不知道所有的细节,我要说的很明显,但我猜surefire插件没有实现对此的支持。你可以尝试提出一个问题 http://jira.codehaus.org/browse/SUREFIRE。 - Pascal Thivent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接