当前位置: 首页 > 知识库问答 >
问题:

Gradle Jacoco插件不生成报告

袁运锋
2023-03-14

这里是Java8和Gradle4.6。我试图配置我的Gradle构建来使用Jacoco插件,但遇到了一些困难。我已经让它使用Checkstyle和Findbugs,比如运行./Gradlew clean Build调用Checkstyle和Findbugs任务,因为它们是Check任务的依赖项。

我现在试图让Jacoco这样工作:

  1. 它排除了我的com.me.myapp.domain.model包及其所有内容;和
  2. 如果非排除类的代码覆盖率低于70%,则构建失败;和
  3. 通过或失败,我需要在build/目录下生成的Jacoco报告的HTML版本;和
  4. 理想情况下,我可以使用相同的Gradle命令调用./gradlew clean build使Jacoco像这样工作
plugins {
    id 'java-library'
    id 'checkstyle'
    id 'findbugs'
    id 'jacoco'
}

dependencies {
    compile(
        'org.hibernate:hibernate-core:5.0.12.Final'
        ,'com.fasterxml.jackson.core:jackson-core:2.8.10'
        ,'com.fasterxml.jackson.core:jackson-databind:2.8.10'
        ,'com.fasterxml.jackson.core:jackson-annotations:2.8.0'
    )

    testCompile(
        'junit:junit:4.12'
    )
}

repositories {
    jcenter()
    mavenCentral()
}

checkstyle {
    config = rootProject.resources.text.fromFile('buildConfig/checkstyle/checkstyle.xml')
    toolVersion = '8.11'
}

tasks.withType(FindBugs) {
    reports {
        xml.enabled false
        html.enabled true
    }
}

findbugs {
    excludeFilter = file('buildConfig/findbugs/findbugs-exclude.xml')
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.enabled true
    }

    afterEvaluate {
        classDirectories = files(classDirectories.files.collect {
            fileTree(dir: it,
                exclude: [
                    'com/me/myapp/domain/model/**'
                ]
            )
        })
    }
}

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                minimum = 0.7
            }

            failOnViolation true
        }
    }
}

jacoco {
    toolVersion = "0.8.1"
}

// to run coverage verification during the build (and fail when appropriate)
check.dependsOn jacocoTestCoverageVerification

有什么想法吗?

共有1个答案

管杜吟
2023-03-14

请注意,Gradle Jacoco插件确实提供了两个完全不相关的功能:

  • 它可以生成覆盖率报告(任务类型JacocoReport)
  • 它可以强制执行代码度量,例如让构建失败(任务类型JacocoCoverageVerification)

如果该插件与Java插件一起应用,则会创建上述每种类型的任务,即JacocotestReportJacocotestCoverageVerification。从名称可以看出,它们都与test任务相关联。

jacocoTestCoverageVerification.dependsOn jacocoTestReport
 类似资料:
  • 你能帮我做以下几件事吗? 进行量角器测试。

  • 我使用sonarqube作为测试结果的输出,而maven和Jacoco用于测试测试用例。 Sonarqube版本是5.4 Maven版本是3.3.9 Jacoco版本0.7 这是我的pom.xml 我也在这里跟踪这个链接,但是对于我正在使用的文件,请在这里输入链接描述。 这就是我构建测试项目的方式 buiild返回成功,但没有生成代码覆盖率我还通过去sonarqube检查了这一点localhost

  • 我想得到cucumber报告,但它没有生成。我得到这个错误在运行通过mvn清洁安装。我不能解决这个问题。我是自动化方面的新手... /*在以Maven Clean安装方式运行期间,我遇到以下错误: 以下文章:[错误][帮助1]http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

  • cmf_plugin_url($url, $param = [], $domain = false) 功能 生成访问插件的url 参数 $url: string url格式:插件名://控制器名/方法 $param: array 参数 $domain:boolean|array 是否显示域名 或者直接传入域名 返回 string 插件的url 例子 echo cmf_plugin_url('De

  • X1.4.0新增 sp_plugin_url($url,$param,$domain) 功能: 生成访问插件的url 参数: $url: url 格式:插件名://控制器名/方法 $param:额外参数,默认为空数组 $domain:是否添加域名,默认false 返回: 类型url 模板使用: {:sp_plugin_url('Demo://Index/index',array('id'=>2)

  • cmf_plugin_url($url, $param = [], $domain = false) 功能 生成访问插件的url 参数 $url: string url格式:插件名://控制器名/方法 $param: array 参数 $domain:boolean|array 是否显示域名 或者直接传入域名 返回 string 插件的url 例子 echo cmf_plugin_url('De

  • 我无法使用allure-maven插件生成AllureTestHTML报告。我使用的是相同版本的testNG-adapter和allure maven插件(1.4.0.rc8)。但是我能够使用allure CLI生成allure html报告。排除依赖项的pom.xml是

  • What the world really needs is more love and less paperwork. — Pearl Bailey 大型的基础设施架构往往是真正的第一受害者。如果你正管理着许多机器, 那么使用 Puppet 的报告设施,可以为你提供一些关于正在发生什么的有价值的信息。 操作步骤 要启用报告,只要将如下的行加入客户端的 puppet.conf 文件: report