- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们有大约 10 个不同的应用程序,它们是带有 Groovy 的 Spring Boot 项目。
我们所有的项目都在所有开发人员工作站中正确构建,并且直到昨天它们都在正常运行,但是今天突然间它们都停止了,只在我们的 GitLab CI 管道中停止工作,并出现以下错误:
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:37 min
[INFO] Finished at: 2018-10-31T17:49:11Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test (default-test) on project ctg-oms-component: There are test failures.
[ERROR]
[ERROR] Please refer to /builds/ctg-integrations/ctg-oms-component/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] ExecutionException The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
我已经提取了使用我们的 GitLab CI 管道的相同 docker 镜像,测试了构建项目并且一切正常。但是,该错误仅发生在 GitLab CI 中。
经过调查,看起来surefire 正在创建一个导致 GitLab CI docker 崩溃的 fork 。为了解决这个问题,我在下面添加了显式配置以避免 fork VM,这消除了上述错误。
<!-- Needed only for GitLab CI -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkCount>0</forkCount>
</configuration>
</plugin>
你知道为什么会这样吗?是否有另一种方法来修复 GitLab CI 以避免此问题?我不太喜欢这种解决方法,因为它只是避免 GitLab CI 爆炸的一种方法,但不知道 Gitlab 中如何在幕后处理 Docker。
最佳答案
这些问题与最新的 maven docker 镜像有关。
有一个开放的 github 问题,人们报告了同样的问题: https://github.com/carlossg/docker-maven/issues/90
经过调查,我可以使用 alpine
版本解决问题,这让我无需添加 maven-surefire-plugin
解决方法。值得一提的是,使用 surefire 解决方法会带来另一个问题,例如 jacoco 之类的插件无法运行,因为它们需要 VM fork。
因此,这些图像可以无缝运行(不需要万无一失的解决方法):
但是,如果我们使用非 alpine 版本,问题仍然存在。
关于docker - GitLab CI 因 maven-surefire-plugin 和 VM 崩溃而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53093020/
最近我将 surefire 插件从 2.15 迁移到 3.0.0-M5,即使所有测试用例都通过了,我仍然看到下面的错误。我在生成的报告中没有看到任何内容,只是一个空文件。 Google 和 stack
我无法获得 maven-surefire-report-plugin 生成 surefire-report.html 当我运行时: mvn clean deploy site mvn clean si
我的 pom.xml 中没有 surefire 插件条目。但是当我使用命令运行时,我得到了 surefure 插件错误: mvn test -Dtest=TEstClass 错误: [ERROR]
我有一个简单的 JPMS 模块。当我使用 maven-surefire-plugin 2.20.1 时一切正常 - 我的测试已执行: org.apache.m
运行 Spring Boot 2.0.2.RELEASE 应用程序的 maven (3.5.2) 构建(由具有 Web 依赖项的 Web 初始化程序生成)无法执行 maven-surefire-p
我试图通过嵌入式jetty服务器和apache wink REST客户端在我的scim Restful服务器实现上运行集成测试,但未能运行测试。这是我的 EmbeddedServerBase 类 pa
所以我遇到了问题,我正在按照教程 Working with Custom Content types in Alfresco 进行操作但当我尝试安装该程序时遇到 Maven 问题。它告诉我 Maven
在我的项目中,测试位于两个目录中的 maven 包“java-tests-framework”(整个项目的子包)中: /src/main/java /src/test/java 我想使用 Surefi
所以我遇到了问题,我正在按照教程 Working with Custom Content types in Alfresco 进行操作但当我尝试安装该程序时遇到 Maven 问题。它告诉我 Maven
您好,我在一个项目中有一个模块,我正在尝试从模块目录运行该模块: mvn 集成测试-PmyProps 在pom中 admin ...
当我在 Surefire 中运行测试时,有什么区别 suitesAndClasses 和 classes 第一个示例似乎并行运行我的测试类,而第二个示例则不然。 最佳答案 请在下面找到一个简单的示例来
我怀疑这很简单,当我直接从 eclipse 执行 JUnit 测试时,surefire 报告没有生成,甚至文件夹 (target/surefire/surefire-report) 也没有生成,但是当
我已经使用 Maven 配置了 Surefire 报告 我没有收到任何错误,但我也没有得到测试执行的结果当作为 Maven 测试运行时。我已附上屏幕截图。我也有正确的 Maven 项目结构 作为 Ma
我想重新运行一个我知道会失败的测试,因为我正在尝试测试 Surefire 参数以重新运行失败的测试。我尝试用这两个命令运行 Maven,它们都没有按预期工作 -Dsurefire.rerunFaili
看起来surefire 和failsafe 插件按顺序执行测试类,而在类中定义的测试以不确定的顺序执行。 为了发现依赖于顺序的测试(我们认为是糟糕的测试),我们希望强制每次运行的顺序不同。理想情况下,
有没有办法让万无一失的干运行? 会列出哪些测试的东西 会 运行,而不运行它们。 目标是知道在特定配置下哪些测试(将)在 JBoss AS7 测试套件中运行。 最佳答案 Janinko 在 https:
在我的项目中,我有几个模块。当我使用 surefire maven 插件生成报告时,它会分别为每个模块创建报告。我想合并这些报告。有没有办法合并这个单独的报告。 Surefire 插件中的任何配置?
我如何在 maven 的默认生命周期中生成 surefire 报告。我们在 teamcity 中设置了工作,目标为 mvn clean install -Pprod 此作业运行所有 junits,我想
我正在运行 Maven 3.1.0 Surefire plugin 已经与 --quiet选项,但是它仍然将单元测试的结果打印到命令行,即使它们都通过了。 有没有办法让它只打印失败? 如果一切正常,我
我排除了插件中除我的测试套件之外的所有测试: org.apache.maven.plugins maven-surefire-plugin 2.11
我是一名优秀的程序员,十分优秀!