Maven Surefire和Maven Failsafe插件有什么区别?
我在网上搜索但没有得到答案。
请有人帮助解决这个问题。
答案 0 :(得分:93)
简单来说,Failsafe插件旨在运行集成测试,而Surefire则运行单元测试。
进一步说明了这一点
maven-surefire-plugin
用于运行单元测试,如果任何测试失败,则会立即使构建失败。
maven-failsafe-plugin
用于运行集成测试,如果实际运行测试时出现测试失败,则会导致构建失败。选择名称“ failsafe ”是因为它是surefire的同义词,因为它暗示当它失败时,它会以安全的方式完成。
故障保护插件有两个目标:
failsafe:integration-test
运行应用程序的集成测试,failsafe:verify
验证应用程序的集成测试是否已通过。
另见:
答案 1 :(得分:17)
从https://maven.apache.org/surefire/maven-failsafe-plugin/开始,我会说Surefire和Failsafe之间的区别在于它们失败的方式:
如果使用Surefire插件运行测试,那么当测试失败时,构建将在集成测试阶段停止,并且集成测试环境不会被正确拆除。
在构建生命周期的集成测试和验证阶段使用Failsafe插件来执行应用程序的集成测试。在集成测试阶段,Failsafe插件不会使构建失败,从而使后集成测试阶段能够执行。
答案 2 :(得分:4)
在我的国家/地区搜索“maven failsafe maven surefire”以获取此常见问题时的第二个谷歌搜索结果:https://maven.apache.org/surefire/maven-failsafe-plugin/其中声明:
“Failsafe插件旨在运行集成测试,而Surefire插件旨在运行单元测试。”