如何配置在maven cobertura插件中运行cobertura测试?

如何配置在maven cobertura插件中运行cobertura测试?,maven,cobertura,Maven,Cobertura,为了微调在什么时间和环境中运行哪些测试,我们为maven surefire插件设置了几个执行。我们将默认配置设置为跳过所有测试,然后为我们想要的执行启用它们。这本身对我们很有效 org.apache.maven.plugins maven surefire插件 真的 单元测试 测试 测试 假的 **/*Tests.java **/*IntegrationTests.java 集成测试 集成测试 测试 假的 **/*IntegrationTests.java 当我将maven cobertur

为了微调在什么时间和环境中运行哪些测试,我们为maven surefire插件设置了几个执行。我们将默认配置设置为跳过所有测试,然后为我们想要的执行启用它们。这本身对我们很有效


org.apache.maven.plugins
maven surefire插件
真的
单元测试
测试
测试
假的
**/*Tests.java
**/*IntegrationTests.java
集成测试
集成测试
测试
假的
**/*IntegrationTests.java
当我将maven cobertura插件添加到混合中时,我遇到了问题。cobertura的目标实现了,并成功地为我的课程配备了仪器。但是,没有运行任何测试。我假设这是因为cobertura正在运行的测试执行被跳过。但是,我找不到如何指定为此执行设置的阶段和目标。当我打开所有测试时,输出似乎表明这些测试仍在这些单元测试和集成测试阶段/目标中运行


org.codehaus.mojo
cobertura maven插件
2.4
xml
html
包裹
科贝图拉
我需要如何指定surefire执行,以便cobertura针对插入指令的类运行它?

您将看到
cobertura:cobertura

  • 一定是
  • 仪器、测试和生成报告
  • 在自己的生命周期中运行
    cobertura
    (而不是
    默认生命周期)
  • 在运行自身之前调用生命周期阶段
    测试

因此,相应地连接它应该会自动导致插装和测试。

当您在没有Cobertura的情况下运行测试时,您是如何告诉maven使用不同的执行的?您正在使用配置文件吗?
单元测试
在常规
测试
阶段运行(因此,当我们执行
mvn包
时),而
集成测试
在执行
mvn安装
时运行。我认为这是因为阶段和目标是在这些执行中指定的,尽管我承认这可能是我的误解。我们确实使用配置文件来启用或禁用Cobertura,但这些似乎与在其他测试之间进行选择无关。是的,我想我已经完成了所有这些(可能应该包括报告部分)。因此,如果它在lifecycle
cobertura
中,是否有某种方法可以在执行中指定生命周期?正如我所说的,检测似乎正在发生,它只是告诉我测试被跳过。如果你按照建议()连接它,它将自动检测、运行测试,然后生成报告。基本配置与精简项目一起工作,但在我的实际项目构建中仍然失败。因此,pom中似乎有其他东西在干扰。您能够让它在某些配置中工作是一个良好的开端。从那个状态开始,我建议只添加源代码(当然还有对POM的任何
依赖性
修改)。看看情况如何。然后进一步调整POM。也许他所要求的,也是我想要做的。我可以通过使用“mvn cobertura:cobertura”生成cobertura报告,但我的构建是使用“mvn clean install”运行的。这会运行cobertura测试来检查覆盖率,但不会生成报告。我希望(也许还有OP)在每次使用“mvn clean install”或“mvn clean package”构建时生成这些报告。可能吗?