Maven FailSafe插件的好处

keh*_*iya 30 testng integration-testing maven maven-surefire-plugin maven-failsafe-plugin

我读过Maven Failsafe插件是专门为运行集成测试而设计的.目前我正在开发一个多模块项目,集成测试在自己独立的模块中,用TestNg编写并使用Surefire插件运行.我们没有与单元测试冲突,因为只有集成测试在该模块的测试阶段运行.要在测试之前设置环境,并在运行测试后进行清理,@BeforeSuite @AfterSuite请使用TestNg注释.因此,不需要使用Failsafe插件使用的pre-integration-test阶段,integration-test阶段,post-integration-test阶段.

  • 通过不使用Failsafe插件,我有没有更多的好处?
  • 有没有更好的方法来使用Failsafe插件来完成我当前的要求?
  • 我可以做我的服务器启动,关闭,文件在解压缩等pre-integration-test,post-integration-test阶段无需编写Maven插件?

Ale*_*sky 29

Failsafe与Surefire有一个重要特征:当测试失败时,它不会立即中止.相反,它允许清理代码运行(通常会关闭Jetty服务器).

  • @Whimusical当至少一次测试失败并且确定时,Maven将默认在`test`阶段之后停止构建.使用故障安全插件,`integration-test`阶段将始终成功,然后`post-Integration-test`将运行,然后构建将在`verify`阶段失败 (2认同)

Cem*_*kas 26

如果您的套件中已经有自己的测试设置/拆卸功能,那么从您的外观来看,您可以从FailSafe插件中获得很多.

FailSafe插件在您的被测系统的设置成本高昂或需要很长时间(例如启动Servlet或分布式系统)的情况下非常有用.在这些情况下,FailSafe插件的方式很方便,您可以在此pre-integration-test阶段设置此环境.当测试失败时,此插件也不会停止Maven构建的执行,这允许您在post-integration-test阶段期间清理所有工件,之后它会检查测试的状态并在此期间通过或失败构建.verify相.