Maven Surefire和Maven Failsafe插件之间有什么区别?


Answers:


139

简而言之,Failsafe插件旨在运行集成测试,而Surefire则用于运行单元测试

这在Maven FAQ中有进一步的解释:

  • maven-surefire-plugin是为运行单元测试而设计的,如果任何测试失败,则它将立即使构建失败。

  • maven-failsafe-plugin是为运行集成测试而设计的,如果在实际运行测试中出现测试失败,则可以将失败的构建解耦。

    选择“ failsafe ” 这个名称是因为它是surefire的同义词,也因为它暗示了当它失败时,它是以安全的方式这样做的。

    故障安全插件有两个目标:

也可以看看:


4
有趣的问题是为什么。许多构建工具可以完美地工作,而不必说这是人为的和有限的区别。PITA可以同时配置两个插件并以一致的方式吸收其报告。
拉斐尔

不,在其他答案中所述的差异并没有提供充分的理由,要求使用多个工具来过滤和标记。
拉斐尔

27

https://maven.apache.org/surefire/maven-failsafe-plugin/,我会说Surefire和Failsafe的区别在于它们的失败方式:

如果您使用Surefire插件运行测试,则在测试失败时,构建将在集成测试阶段停止,并且集成测试环境将无法正确拆除。

Failsafe插件用于构建生命周期的集成测试和验证阶段,以执行应用程序的集成测试。Failsafe插件在集成测试阶段不会使构建失败,从而使集成后测试阶段能够执行。


2
然后问题就变成了:如果他们告诉我们它可能会使东西保持错误状态,为什么还要使用Surefire?
user118967

6

在我的国家/地区,当搜索“ maven failsafe maven surefire”以获取此FAQ时,这是第二个Google搜索结果:maven-failsafe-plugin和maven-surefire-plugin之间的区别在于

maven-surefire-plugin专为运行单元测试而设计,如果任何测试失败,那么它将立即使构建失败。

maven-failsafe-plugin专为运行集成测试而设计,如果实际运行测试存在测试失败,则可以将失败的构建解耦。”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.