标签: jacoco

使用 Jacoco 进行集成测试的代码覆盖率

我将jacocoagent.jar0.8.1 版作为 Java 代理传递,以将服务器上的代码覆盖率记录到我的服务器启动脚本中。但是我看到 jar 中缺少 Pre-main 类属性,因此,我收到以下错误:

Error occurred during initialization of VM
Failed to find Premain-Class manifest attribute in 
/u01/jetty_home/jacoco/jacocoagent.jar
agent library failed to init: instrument.
Run Code Online (Sandbox Code Playgroud)

有没有人有关于如何解决这个问题的想法?

jacoco

1
推荐指数
1
解决办法
1229
查看次数

SonarQube 如何通过 JaCoCo 计算覆盖范围?

JaCoCo 只输出 jacococ.exec,这是声纳的输入。在那个文件中,似乎只有信息:

- Class name
- Total Class Probes
- Executed Class Probes
Run Code Online (Sandbox Code Playgroud)

但是,SonarQube 不能仅仅依赖于这些值,因为它需要告诉您哪些是未转换的确切行,因此 Sonar 正在对其自身进行分析。那么它是如何使用 Jacoco 报告的呢?为什么需要它?

jacoco sonarqube

1
推荐指数
1
解决办法
1237
查看次数

SonarQube + Maven + JaCoCo + GitLab CI:升级到 SonarQube 7.9.2 后,Sonar 开始显示 0% 代码覆盖率

在我们将 SonarQube 升级到 后Version 7.9.2 (build 30863), Community Edition,运行 GitLab CI Pipeline 会导致显示0.0%覆盖率(从 about 下降86.2%),尽管 Sonar 显示了所有单元测试。

执行的 Maven 构建.gitlab-ci.yml如下所示:

    - mvn test sonar:sonar -Dsonar.host.url=${SONAR_HOST_URL} -Dsonar.login=${SONAR_TOKEN}
Run Code Online (Sandbox Code Playgroud)

sonar.coverage.jacoco.xmlReportPaths显然,这与臭名昭著的 Sonar-JaCoCo 插件设置有关sonar.jacoco.reportPaths(请参阅https://docs.sonarqube.org/pages/viewpage.action?pageId=1442166)。

查看管道作业日志后,我发现以下内容(项目名称混淆为myProject):

SonarQube 升级之前:

[INFO] Sensor JaCoCo XML Report Importer [jacoco]
[INFO] Sensor JaCoCo XML Report Importer [jacoco] (done) | time=3ms
[INFO] Sensor SurefireSensor [java]
[INFO] parsing [/builds/myProject/target/surefire-reports]
[INFO] Sensor SurefireSensor [java] (done) | time=87ms
[INFO] Sensor …
Run Code Online (Sandbox Code Playgroud)

java code-coverage maven jacoco sonarqube

1
推荐指数
1
解决办法
6481
查看次数

在 azure devops 中,如果代码覆盖率低于 70%,如何使管道失败

我们正在使用 springboot、Jacoco 和 azure devops,如果代码覆盖率低于 70%,我们需要中断管道,我如何使用 azure pipeline 来实现这一点。请建议。

jacoco azure-devops azure-pipelines azure-devops-server-2019

1
推荐指数
1
解决办法
2869
查看次数

Jacoco在我的Gradle项目中没有显示Spock代码覆盖率

我有一个配置了jacoco插件的Gradle项目来报告测试代码的覆盖范围.我的单元测试是用Spock框架编写的.

虽然Jacoco插件生成HTML报告,但它会将所有类的代码覆盖率报告为0%.

我google了很多,找不到我想念的东西.有没有人使用Gradle + Jacoco进行Spock代码覆盖?

apply plugin: "jacoco"
apply plugin: "groovy"

sourceSets {
    main {
        java { srcDirs = ['src/main/java'] }
        groovy {srcDirs = ['src/main/groovy'] }
        resources { srcDir 'src/main/resources' }
    }

    test {
        java { srcDirs = ['src/test/java'] }
        groovy { srcDirs = ['src/test/groovy'] }
        resources { srcDir 'src/test/resources' }
    }
}

test {
    jvmArgs '-Xms64m', '-Xmx2G', '-XX:MaxPermSize=128m'
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/jacocoHtml"
    }
}

dependencies {
    testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
    testCompile "org.spockframework:spock-spring:0.7-groovy-2.0"
}
Run Code Online (Sandbox Code Playgroud)

unit-testing code-coverage gradle spock jacoco

0
推荐指数
1
解决办法
4755
查看次数

如何在服务器上执行 webApplication 时获取 JaCoCo 检测代码覆盖率

当我在实时应用程序上执行某些场景时,即当应用程序在服务器中运行时,我想获得代码覆盖率报告(或跟踪应用程序的控制器流程),因此我参考了官方Jacoco 文档并按照以下方式执行

第一步,我尝试将 jacoco 代理绑定到应用程序运行端口

export MAVEN_OPTS=-javaagent:/home/user/.m2/repository/org/jacoco/org.jacoco.agent/0.7.4.201502262128/org.jacoco.agent-0.7.4.201502262128-runtime.jar=includes=*,output=tcpserver,port=6300,address=*,dumponexit=true  
Run Code Online (Sandbox Code Playgroud)

然后我启动了服务器并执行了一些测试场景,当时我还请求 jacoco 通过执行以下命令来获取转储

 mvn jacoco:dump
Run Code Online (Sandbox Code Playgroud)

当我首先执行上面的命令时,它显示如下java.net.BindException: Address already in use,然后它打印为休闲

[INFO] Connecting to localhost/127.0.0.1:6300
Run Code Online (Sandbox Code Playgroud)

当我停止服务器时,在我请求通过执行以下命令生成 jacoco 报告后,jacoco.exec已生成到已知位置

mvn jacoco:report
Run Code Online (Sandbox Code Playgroud)

最后我收到了报告,但当我打开 index.html 页面时,它显示了0%覆盖范围。

您可以通过以下示例 Spring MVC 项目重现我的困难

请从 Github下载 Spring MVC 项目https://github.com/mkyong/spring4-mvc-ajax-example

就我而言,我使用 WildFly 8.x 服务器来运行项目并将以下依赖项添加到下载的项目 pom.xml

 maven-surefire-plugin of 2.19.1 version
 jacoco-maven-plugin of 0.7.4.201502262128 version 
 junit of 4.12 version
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令清理并构建项目。

mvn clean install
Run Code Online (Sandbox Code Playgroud)

完成后,从项目的目标文件夹中获取 .war 文件并将其保存在 wildflyserverwildfly-9.0.0.CR2/standalone/deployments/文件夹中

部署 .war 后,转到/wildfly-9.0.0.CR2/bin/文件夹并执行/运行该./standalone.sh文件,或者根据平台,您可以运行该 …

jacoco test-reporting jacoco-maven-plugin

0
推荐指数
1
解决办法
3694
查看次数

jacoco.xml 与 jacocoTestReport.xml

在我的 gradle 项目中,我没有jacocoTestReport.xml 使用jacoco.xml. jacoco.xml和 之间有什么区别jacocoTestReport.xml

在 Google 上,这两个文件之间的区别尚不清楚。

PS:我问的原因是Code Climate需要一个jacoco.xml代码覆盖率文件。

gradle jacoco

0
推荐指数
1
解决办法
4152
查看次数