【发布时间】:2014-09-24 20:48:24
【问题描述】:
本周早些时候,我在恢复 Clover 运行时更改的项目属性时遇到了很大的困难(这样它就不会干扰后续插件):
How to revert Maven project.build variables after Clover plugin finishes?
我通过在 Maven 启动时保存这些属性并在我的插件中使用保存的变量而不是 Clover 更改的变量来解决了这个问题。
现在我能够在预集成测试阶段托管非仪器 WAR 文件,我的测试能够成功运行并通过(以前,我无法从仪器 WAR 文件运行应用程序,因为Clover 不在发布类路径上)。
不幸的是,我发现分叉的 Clover 生命周期超出了测试阶段。在我的测试通过并且嵌入式 Tomcat 实例关闭后,原始生命周期再次运行 Tomcat7 插件,启动服务器,然后重新运行测试。
我可以忍受它运行两次我的单元测试(这可以捕获仅在有或没有 Clover 仪器的情况下出现的边缘情况错误),但运行我的集成测试两次是完全没有必要的。这些测试不涉及生产代码(他们使用 Selenium 在浏览器中自动进行 UI 测试)。如前所述,检测的 WAR 文件无论如何都不起作用,因此在运行集成测试时它甚至不再存在。绝对没有理由需要再次运行这些测试。
如何告诉 Clover 在测试阶段完成后终止分叉生命周期,以便集成测试只运行一次?我目前只能在整个生命周期内启用它,或者根本不启用。
更新:我发现即使我通过传入 -Dmaven.clover.skip=true 来禁用 Clover 插件,它仍然会分叉生命周期。我发现防止这种情况发生的唯一方法是完全注释掉 Clover 插件,这样它就没有机会在跳过检测之前分叉生命周期。
【问题讨论】:
标签: maven integration-testing code-coverage clover