MavenSurefire 和 MavenFailsafe 插件的区别是什么? 我在网上到处搜索,但是没有找到答案。
从 https://maven.apache.org/surefire/maven-failsafe-plugin/的角度来看,我想说的是,Surefire 和 Failsafe 之间的区别在于它们失败的方式:
如果您使用 Surefire Plugin 运行测试,那么当测试失败时,构建将在集成测试阶段停止,您的集成测试环境将不会被正确拆除。 在构建生命周期的集成测试和验证阶段,使用故障安全插件来执行应用程序的集成测试。故障安全插件不会在集成测试阶段失败构建,因此可以执行后集成测试阶段。
如果您使用 Surefire Plugin 运行测试,那么当测试失败时,构建将在集成测试阶段停止,您的集成测试环境将不会被正确拆除。
在构建生命周期的集成测试和验证阶段,使用故障安全插件来执行应用程序的集成测试。故障安全插件不会在集成测试阶段失败构建,因此可以执行后集成测试阶段。
在我的国家,这是第二次谷歌搜索结果,当搜索“专家故障安全专家必胜”得到这个常见问题: Maven-faulsafe-plugin 与 maven-surefire-plugin 的区别,其中说:
Maven-surefire-plugin 是为运行单元测试而设计的,如果任何测试失败,那么它将立即失败构建。 Maven-faulsafe-plugin 是为运行集成测试而设计的,并且 如果实际上存在测试失败,则将构建失败解耦 正在进行测试。”
Maven-surefire-plugin 是为运行单元测试而设计的,如果任何测试失败,那么它将立即失败构建。
Maven-faulsafe-plugin 是为运行集成测试而设计的,并且 如果实际上存在测试失败,则将构建失败解耦 正在进行测试。”
简单地说,故障安全插件被设计为运行 综合测试,而 Surefire 运行 单元测试。
Maven 常见问题解答进一步解释了这一点:
maven-surefire-plugin 是为运行 单元测试而设计的,如果任何测试失败,那么它将立即失败构建。 maven-failsafe-plugin 是为运行 综合测试而设计的,如果实际运行测试时出现测试失败,则解耦失败的构建。 之所以选择“ 自动防故障装置”这个名字,一方面是因为它是 surefire 的同义词,另一方面是因为它暗示了当它失败时,它是以一种安全的方式进行的。 故障保护插件有两个目标: failsafe:integration-test 运行应用程序的集成测试, failsafe:verify 验证应用程序的集成测试是否通过。
maven-surefire-plugin 是为运行 单元测试而设计的,如果任何测试失败,那么它将立即失败构建。
maven-surefire-plugin
maven-failsafe-plugin 是为运行 综合测试而设计的,如果实际运行测试时出现测试失败,则解耦失败的构建。
maven-failsafe-plugin
之所以选择“ 自动防故障装置”这个名字,一方面是因为它是 surefire 的同义词,另一方面是因为它暗示了当它失败时,它是以一种安全的方式进行的。
故障保护插件有两个目标:
failsafe:integration-test
failsafe:verify
参见: