Java Jenkins jacoco插件没有遵守pom.xml中的include
我得到了一个pom.xml,大致如下所示:Java Jenkins jacoco插件没有遵守pom.xml中的include,java,maven,jenkins,junit,jacoco,Java,Maven,Jenkins,Junit,Jacoco,我得到了一个pom.xml,大致如下所示: <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.1</version> <configuration> <includes> <include>my/pa
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<configuration>
<includes>
<include>my/package/path/**/*</include>
</includes>
</configuration>
<!-- more stuff -->
</plugin>
org.jacoco
jacocomaven插件
0.8.1
我的/包/路径/**/*
当我运行单元测试,然后在笔记本电脑上本地调用mvnjacoco:report
,一切正常,只包括my.package.path
中的内容。我的保险率是86%。然而,当我让Jenkins使用相同的命令运行单元测试,然后在我的Jenkins文件中调用jacoco(execPattern:'target/jacoco.exec')
时,我最终得到了附加到构建的报告中包含的所有代码,因此我的覆盖率最终为2%,因为我没有为一堆第三方库编写测试
如何解决此问题?您可以排除第三方软件包:
<excludes><!-- Exclude class from test coverage -->
<exclude>**/*com/3rdparty/path/*</exclude>
</excludes>
**/*com/3rdparty/path/*
我能够通过调用jacoco
中的inclusionPattern
参数来解决这个问题:
jacoco(execPattern: 'target/jacoco.exec',inclusionPattern: 'my/package/path/**/*')
这并不能解决问题。如果jenkins没有选择包含模式,为什么它会选择排除模式?有几种方法可以排除包。检查这里的链接,看看是否有任何答案可以解决您的问题:所有这些答案都依赖于maven和pom.xml文件。我的问题与詹金斯似乎没有使用那个文件有关。你回答了你自己的问题。在这种情况下,您可能需要在Jenkins中更改Jacoco配置。