Maven构建因测试失败而失败,但所有可靠的报告都没问题

时间:2015-03-24 16:36:53

标签: maven surefire

当我在我的项目上构建Maven时,我得到以下内容:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.

请参阅。

然而,我所有的万无一失的报告显示0次失败和0次错误。

任何可能导致此问题或如何查找的想法?

此致

奥利

3 个答案:

答案 0 :(得分:0)

检查所使用的surefire的版本并确保它是最新的。这可能足以让你看到失败的原因,如果不完全纠正问题。

如果同样的问题仍然存在,请暂时将forkCount属性设置为0并重新运行构建。我见过Surefire之前从分叉进程中吞下异常。如果这是正在发生的事情,不使用分支将让您看到异常,以便您可以纠正问题。

答案 1 :(得分:0)

这可能是由于计算机内存不足所致。

通过将日志重定向到单独的日志文件来运行Maven构建为我解决了问题

mvn clean install > log-file.log

请注意,因为如果确实存在内存不足的问题(例如我的情况),那么它也取决于我们正在执行的命令。例如,当日志重定向到文件而不是控制台时,mvn clean install eclipse:clean eclipse:eclipse命令运行良好,但是当我使用带有-X标志的maven命令并运行该命令时,即使我重定向了,我仍然再次遇到问题输出到日志文件

请查看以下可能是类似问题的答案

The forked VM terminated without saying properly goodbye. VM crash or System.exit called

答案 2 :(得分:0)

将项目从Java 8升级到9后,我遇到了同样的问题。

从我的IDE运行时,我的测试通过了,但是在使用maven运行时,测试失败了,并且所有surefire报告都是干净的,没有失败。

然后,我打开了一个在$ {project_dir} / target / surefire-reports / testng-junit-results中找到的html surefire报告,在该报告中,我看到了一次失败的整个堆栈跟踪,并且与java.base模块有关我以前遇到过问题(标准Java 9模块可访问性问题),所以我意识到我必须在我的surefire插件argLine中添加一些--add-opens标志:

--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED 
--add-opens=java.base/jdk.internal.loader=ALL-UNNAMED

这个问题非常令人沮丧,因为错误不是直观的,我仍然不明白为什么它没有像我那样说“模块java.base不会“打开jdk.internal.loader”到未命名的模块”我以前见过。