如何在 exec-maven-plugin:exec 失败时执行清理脚本?
How to execute a cleanup script on exec-maven-plugin:exec failure?
我目前正在使用maven插件exec-maven-plugin
执行一个脚本,这个脚本会启动几个java程序对应一个integration test
,如果测试通过,则一切停止由稍后在构建中执行的 cleanup script
正确执行。
我的问题是测试失败,因为当插件 exec-maven-plugin
失败时它会立即停止构建,这样我的 cleanup script
永远不会被调用,这意味着我的 java 程序永远不会停止了。
那么有没有办法在我的 integration test
失败的情况下执行我的 cleanup script
?
到目前为止,我将 1
作为 successCode
添加到我的集成测试中,以确保我的 cleanup script
被调用,但它不够好,因为看到构建有一个构建事实并非如此。
有什么想法吗?
这是我最后做的:
- 我将
1
作为 success code
添加到我的 integration test
以确保始终调用 cleanup script
。
- 我将 属性
outputFile
定义到我的 integration test
以便将标准输出流重定向到一个文件以供稍后测试
- 在
cleanup script
之后,我使用 cat {my-file} | grep {my-pattern} >/dev/null
类型的命令检查在步骤 #2 中创建的文件中的给定模式,以便了解 integration test
是否通过,如果找不到pattern,会导致构建失败,否则构建会通过
我目前正在使用maven插件exec-maven-plugin
执行一个脚本,这个脚本会启动几个java程序对应一个integration test
,如果测试通过,则一切停止由稍后在构建中执行的 cleanup script
正确执行。
我的问题是测试失败,因为当插件 exec-maven-plugin
失败时它会立即停止构建,这样我的 cleanup script
永远不会被调用,这意味着我的 java 程序永远不会停止了。
那么有没有办法在我的 integration test
失败的情况下执行我的 cleanup script
?
到目前为止,我将 1
作为 successCode
添加到我的集成测试中,以确保我的 cleanup script
被调用,但它不够好,因为看到构建有一个构建事实并非如此。
有什么想法吗?
这是我最后做的:
- 我将
1
作为success code
添加到我的integration test
以确保始终调用cleanup script
。 - 我将 属性
outputFile
定义到我的integration test
以便将标准输出流重定向到一个文件以供稍后测试 - 在
cleanup script
之后,我使用cat {my-file} | grep {my-pattern} >/dev/null
类型的命令检查在步骤 #2 中创建的文件中的给定模式,以便了解integration test
是否通过,如果找不到pattern,会导致构建失败,否则构建会通过