即使 fail-on-end 设置为 true,当达到测试超时时,Maven 肯定会失败构建
Maven sure fail build when a test timeout is reached even when fail-on-end set to true
在多模块 Maven 项目中,我想在达到测试超时时打印线程转储并使测试失败。所以为了实现这一点,我使用了 TimedoutTestsListener and surefire listener property.
的组合
我正在使用 Jenkins,因此 fail-on-end
设置为 true,以便所有未受影响的测试继续 运行,如前所述 here。
那么,是否有可能只有在达到超时时才立即失败构建,而在其他失败情况下最终失败?
- JUnit - 4.12
- Maven - 3.5
- 万无一失 - 2.22.2
- Java - 8
中得到解答
to fail the build immediately when timeout is reached
此功能存在多年:
http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#forkedProcessTimeoutInSeconds
http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#forkedProcessTimeoutInSeconds
to fail the ... when someone presses abort button on the jenkins
这也存在几个替代方案(在
版本)。查看详细页面
http://maven.apache.org/surefire/maven-failsafe-plugin/examples/shutdown.html
如果您的 Jenkins 将 SIGTERM 信号发送到 Maven 进程(相同
如 CTRL+C) 那么流程管道中的标准输入流变为
关闭并且 EOFException 被分叉的 JVM 捕获并关闭
叫做:
http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#shutdown
maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#shutdown
如果你想杀死 JVM,你可以重新配置默认行为。
如果您的 Jenkins 将 SIGTERM 发送到 Maven 进程,则启用
进程检查器,请参阅文档中的更多详细信息:
http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#enableProcessChecker
http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#enableProcessChecker
有帮助吗?
常见问题解答如下:
http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html
如果您对此主题有疑问,请随时提出任何问题。
如果您使用的是 surefire 3.0.0-M4,则可以在 target/surefire-reports
中找到线程转储,如 here 所述。
在多模块 Maven 项目中,我想在达到测试超时时打印线程转储并使测试失败。所以为了实现这一点,我使用了 TimedoutTestsListener and surefire listener property.
的组合我正在使用 Jenkins,因此 fail-on-end
设置为 true,以便所有未受影响的测试继续 运行,如前所述 here。
那么,是否有可能只有在达到超时时才立即失败构建,而在其他失败情况下最终失败?
- JUnit - 4.12
- Maven - 3.5
- 万无一失 - 2.22.2
- Java - 8
to fail the build immediately when timeout is reached
此功能存在多年: http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#forkedProcessTimeoutInSeconds http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#forkedProcessTimeoutInSeconds
to fail the ... when someone presses abort button on the jenkins
这也存在几个替代方案(在 版本)。查看详细页面 http://maven.apache.org/surefire/maven-failsafe-plugin/examples/shutdown.html
如果您的 Jenkins 将 SIGTERM 信号发送到 Maven 进程(相同 如 CTRL+C) 那么流程管道中的标准输入流变为 关闭并且 EOFException 被分叉的 JVM 捕获并关闭 叫做: http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#shutdown maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#shutdown 如果你想杀死 JVM,你可以重新配置默认行为。
如果您的 Jenkins 将 SIGTERM 发送到 Maven 进程,则启用 进程检查器,请参阅文档中的更多详细信息: http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#enableProcessChecker http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#enableProcessChecker
有帮助吗?
常见问题解答如下: http://maven.apache.org/surefire/maven-failsafe-plugin/faq.html
如果您对此主题有疑问,请随时提出任何问题。
如果您使用的是 surefire 3.0.0-M4,则可以在 target/surefire-reports
中找到线程转储,如 here 所述。