我正在试图弄清楚如何从jkins推出的代码覆盖率报告中排除文件夹列表,该报告由Jenkins发布。
似乎可以排除类,但不是文件夹,这对我来说很烦人,因为我已经开始使用相当大的库来进行在线支付系统。运行这些单元测试意味着不断在该平台上创建测试帐户,并且必须再次删除它们。詹金斯的每一根叉都跑了。
只是排除文件夹比排除每一个类都要简单得多。
答案 0 :(得分:4)
要通过更改Jenkins JaCoCo插件配置来排除整个目录,您需要在'排除'中添加一个条目。领域。
例如,如果要排除名为' test'的任何目录下的任何文件。您将添加以下排除项:
** /测试/ **
请记住,如果要添加多个排除项,则必须用逗号分隔每个排除项,并且不能有空格(由于插件的错误)。
这是我的JaCoCo插件配置: Example JaCoCo Plugin Configuration
答案 1 :(得分:1)
如果您正在使用管道和Jenkinsfile,您可以使用以下作为设置的示例(假设为gradle):
stage("Check code quality and coverage") {
steps{
sh "./gradlew jacocoTestReport sonarqube -x check"
step( [$class: 'JacocoPublisher',
exclusionPattern: '**/*Exception*,**/*Configuration*,**/ApiApplication*,**/*Test*'] )
}
}
值得注意的是,exclusionPattern以逗号分隔,并且多个排除模式之间的 NO SPACES 。
查看潜在设置完整列表的最简单方法是查看代码:
并查看@DataBoundSetter的
public JacocoPublisher() {
this.execPattern = "**/**.exec";
this.classPattern = "**/classes";
this.sourcePattern = "**/src/main/java";
this.inclusionPattern = "";
this.exclusionPattern = "";
this.skipCopyOfSrcFiles = false;
this.minimumInstructionCoverage = "0";
this.minimumBranchCoverage = "0";
this.minimumComplexityCoverage = "0";
this.minimumLineCoverage = "0";
this.minimumMethodCoverage = "0";
this.minimumClassCoverage = "0";
this.maximumInstructionCoverage = "0";
this.maximumBranchCoverage = "0";
this.maximumComplexityCoverage = "0";
this.maximumLineCoverage = "0";
this.maximumMethodCoverage = "0";
this.maximumClassCoverage = "0";
this.changeBuildStatus = false;
this.deltaInstructionCoverage = "0";
this.deltaBranchCoverage = "0";
this.deltaComplexityCoverage = "0";
this.deltaLineCoverage = "0";
this.deltaMethodCoverage = "0";
this.deltaClassCoverage = "0";
this.buildOverBuild = false;
}
答案 2 :(得分:0)
通过指定sonar.jacoco.excludes
参数,从声纳分析中排除类:
sonar.jacoco.excludes=*/exceptions/*:*/dto/*