2

我有一个等待测试,我预计有时会失败,因为测试线程太不同步了。所以我设置successPercentageandinvocationCount来处理偶尔可接受的失败。如果代码被破坏,任何调用都不会通过。

当我在 IntelliJ 中运行测试时,一切都很好。但是当我尝试在 Maven 中进行构建时,我得到以下信息

测试运行:1407,失败:0,错误:1,跳过:0

[信息] --------------------------------------------- -------------------------
[错误] 构建失败
[信息] --------------------------------------------- -------------------------
[INFO] 有测试失败。

查看restng-results.xml,我看到了:

<test-method status="SUCCESS_PERCENTAGE_FAILURE" signature="waits()" name="waits" duration-ms="1000" started-at="2012-03-02T13:51:58Z" finished-at="2012-03-02T13:51:59Z">

在 TEST-TestSuite.xml 中,我看到:

<testcase classname="com.casenet.integration.filesystem.TriggerFileListenerTest" time="1" name="waits">
  <error type="java.lang.AssertionError" message="expected:&lt;EXECUTE&gt; but was:&lt;TIMED_OUT&gt;">java.lang.AssertionError: expected:&lt;EXECUTE&gt; but was:&lt;TIMED_OUT&gt;

其余的 testng 生成的文件似乎认为一切都通过了。但看起来,万无一失的是,当事实上没有发生意外的事情时,它被SUCCESS_PERCENTAGE_FAILURE或认为出了问题的元素弄糊涂了。<error/>

任何人都知道这是一个已知问题还是有可用的解决方案?

4

2 回答 2

3

更新:此问题的修复已使其发布版本 6.8.17。我已经相应地编辑了我的答案。


我知道我在这里挖掘了一个老问题,但看起来我们已经解决了这种情况,我可以想象人们想知道这一点。要使用此修复程序,您需要 SureFire 2.18 和至少 TestNG 6.8.17。

您可以参考以下错误报告以获取完整的信息背景:

https://jira.codehaus.org/browse/SUREFIRE-654对于最初的问题,如@Raghuram 的答案中所链接。简短版本:SureFire 报告了假阴性。

https://jira.codehaus.org/browse/SUREFIRE-1113了解我报告的有关 SUREFIRE-654 修复的错误。结果证明这不是 SureFire 问题,而是 5.14 版(2010 年!)中引入的 TestNG 错误。简短版本:SureFire(我认为)报告了误报。

https://github.com/cbeust/testng/issues/566用于实际的 TestNG 错误,该错误已由 Vladislav Rassokhin 修复并最近合并到一个版本中。简短版本:TestNG 实际上创建了误报,然后 SureFire 将其解析为成功的测试。

于 2014-11-17T15:58:07.253 回答
1

看起来有一个开放的万无一失的错误,这似乎也有一个补丁和解决方法。

于 2012-03-04T18:12:04.257 回答