3

我们有一些项目,我们使用 jacoco 来聚合多个模块的代码覆盖率。我们还有一些项目使用 Fabric8 docker-maven-plugin 来运行黑盒测试。但是我们现在第一次想在同一个项目中运行它们。它有点工作,但不是在同一个 Maven 命令中。

我们可以运行 mvn test 然后 jacoco 完美地完成它。我们可以运行 mvn install -Djacoco.skip=true 并且黑盒测试启动必要的 docker-containers 并在它们上运行测试。

但是运行 mvn install 并因此说 blackbox-tests 和 jacoco codecoverage 都应该运行将失败,说 jacoco 没有在中央存储库中找到依赖项(无论如何它们都不应该存在)。

那么,我的问题是,docker-maven-plugin 可以做什么来干扰 jacoco?似乎 docker-maven-plugin 删除了 jacoco 期望存在的东西。

我对 jacoco 的配置是使用带有 localRepositoryPath 的调用程序插件(正如 jacoco 的多模块示例的许多指南一样),它会发生冲突吗?还是 docker-maven-plugin 清理工作区?Se 插件定义如下。

<plugin>
    <!-- To run with different Maven versions use -Dinvoker.mavenHome -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-invoker-plugin</artifactId>
    <version>1.5</version>
    <configuration>
      <skipInvocation>${skipTests}</skipInvocation>
      <projectsDirectory>it</projectsDirectory>
      <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
      <pomIncludes>
        <pomInclude>*/pom.xml</pomInclude>
      </pomIncludes>
      <postBuildHookScript>verify</postBuildHookScript>
      <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
      <goals>
        <goal>clean</goal>
        <goal>install</goal>
      </goals>
      <settingsFile>it/settings.xml</settingsFile>
      <extraArtifacts>
        <extraArtifact>org.jacoco:org.jacoco.agent:0.8.3:jar:runtime</extraArtifact>
      </extraArtifacts>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>install</goal>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
4

0 回答 0