标签: jacoco

将集成和单元测试报告与JaCoCo合并

我正在使用maven与JaCoCo插件生成failafe和surefire报告,但我只能设法将它们放在单独的报告中.我想有一个整体覆盖视图(单元测试和集成测试之间的合并).

在我认为彻底的谷歌搜索之后,我只能找到一种方法来与Sonar一起做.有没有更简单的方法来做到这一点?

相关问题:Maven分离单元测试和集成测试

code-coverage maven maven-surefire-plugin maven-failsafe-plugin jacoco

28
推荐指数
3
解决办法
1万
查看次数

在Intellij IDEA中打开JaCoCo报告

我试图通过使用代码覆盖工具(而不是静态代码分析工具)在我们的应用程序上找到死代码.我选择了JaCoCo,并且能够通过JaCoCo代理获得报告.

我知道Intellij IDEA与JaCoCo合作,但无论如何我都找不到将我的JaCoCo报告导入Intellij IDEA.有关如何做到这一点的任何想法?

谢谢

java code-coverage intellij-idea jacoco

26
推荐指数
2
解决办法
2万
查看次数

将启用更改为必需会在 gradle 中引发错误

将启用更改为必需会在 gradle 7.5 中引发错误

> Configure project :
The Report.enabled property has been deprecated. This is scheduled to be removed in Gradle 8.0. Please use the required property instead. See https://docs.gradle.org/7.5/dsl/org.gradle.api.reporting.Report.html#org.gradle.api.reporting.Report:enabled for more details.

 jacocoTestReport {
     reports {
-        xml.enabled false
-        csv.enabled false
-        html.enabled true
+        xml.required false
+        csv.required false
+        html.required true
     }
 }

> Could not find method required() for arguments [false] on Report xml of type org.gradle.api.reporting.internal.TaskGeneratedSingleFileReport.
Run Code Online (Sandbox Code Playgroud)

java gradle jacoco

26
推荐指数
2
解决办法
2万
查看次数

JaCoCo无法添加具有相同名称的不同类:org/hamcrest/BaseDescription

嗨,我在运行JaCoCo报道时遇到以下异常:

    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.5.8.201207111220</version>
        <executions>
            <execution>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>report</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
Run Code Online (Sandbox Code Playgroud)
Error while creating report: Can't add different class with same name: org/hamcrest/BaseDescription
java.lang.IllegalStateException: Can't add different class with same name: org/hamcrest/BaseDescription
    at org.jacoco.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:89)
    at org.jacoco.core.analysis.Analyzer$1.visitEnd(Analyzer.java:79)
    at org.objectweb.asm.ClassAdapter.visitEnd(Unknown Source)
    at org.jacoco.core.internal.flow.ClassProbesAdapter.visitEnd(ClassProbesAdapter.java:128)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:94)
    at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:115)
    at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:155)
    at org.jacoco.core.analysis.Analyzer.analyzeArchive(Analyzer.java:135)
    at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:158)
    at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:183)
    at org.jacoco.maven.ReportMojo.createBundle(ReportMojo.java:280)
    at org.jacoco.maven.ReportMojo.createReport(ReportMojo.java:256)
    at org.jacoco.maven.ReportMojo.executeReport(ReportMojo.java:230)
    at org.jacoco.maven.ReportMojo.execute(ReportMojo.java:208)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) …
Run Code Online (Sandbox Code Playgroud)

jacoco

25
推荐指数
2
解决办法
1万
查看次数

如何计算关于Web应用程序代码的selenium测试的代码覆盖率

我要求将我的selenium测试的代码覆盖率捕获到所涵盖的服务器代码(Web应用程序源代码)中的源代码量.

例如,登录功能的测试应该捕获登录功能的Web应用程序中涵盖的代码量.

否则,需要知道它已在Web应用程序代码中触及哪个包或类,以完成所使用的方案.例如登录

我找不到合适的解决方案,虽然我开始了解Jacoco代码覆盖工具并尝试使用Jacoco Jenkins插件的一些示例,但没有成功.

我不知道可能性.请提供给我一个如何实现这一点的建议,在此先感谢

javascript java selenium code-coverage jacoco

25
推荐指数
2
解决办法
2万
查看次数

使用testCoverageEnabled = true运行Android测试时的java.lang.VerifyError

我最近为Android Gradle插件尝试了新的Jacoco代码覆盖功能,不幸的是它使我的测试失败并出现以下错误:

 java.lang.VerifyError: com/foo/bar/rest/SomeClass at
 com.foo.bar.test.rest.BaseTest.setUp(BaseTest.java:87) at
 android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) at
 android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) at
 android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
 at
 android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
Run Code Online (Sandbox Code Playgroud)

我在build.gradle中使用这些行启用了代码覆盖:

 buildTypes {

         debug {
             testCoverageEnabled = true
         } 
...
Run Code Online (Sandbox Code Playgroud)

有谁遇到过同样的问题?

android gradle jacoco

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

在Android工作室的Jacoco Code Coverage

我正在尝试生成Jacoco代码覆盖率报告.我已经在我的测试类中使用了AndroidTestCase.

我发现使用testCoverageEnabled为true并使用默认的android -studio默认jacoco,./ gradlew connectedCheck或createDebugCoverageReport创建成功/失败测试用例的百分比,但没有覆盖率报告.

然后我尝试了jacoco {toolVersion"0.7.1.201405082137"}和任务jacocoTestReport(类型:JacocoReport,dependsOn:"testDebug").我试图用各种任务来改变dependsOn值.该报告显示0(零)测试覆盖率,这是不可能的,因为至少有一半的类被测试.

在过去的几天里,我已经跟踪了堆栈溢出的各种接受的答案.结果是否定的.

我的gradle文件:

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'        
    }
}

apply plugin: 'com.android.application'
apply plugin: 'jacoco'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "test.gradle.com.myapplicationtestgradle"
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false            
            proguardFiles getDefaultProguardFile(
            'proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            testCoverageEnabled true
        }
    }

    jacoco {
        version "0.7.1.201405082137"
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }
}


jacoco {
    toolVersion "0.7.1.201405082137"
} …
Run Code Online (Sandbox Code Playgroud)

android jacoco android-studio test-coverage

23
推荐指数
2
解决办法
4万
查看次数

Maven JaCoCo插件错误

我在我的pom.xml文件中配置了Maven JaCoCo插件,如下所示:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jacoco.version>0.5.9.201207300726</jacoco.version>
</properties>

<profiles>
    <profile>
        <id>jacoco4</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration
                            <destfile>${project.build.directory}/target/jacoco.exec</destfile>
                            <datafile>${project.build.directory}/target/jacoco.exec</datafile>
                                <output>file</output>
                                <append>true</append>
                            </configuration>
                        </execution>
                        <execution>
                            <id>report</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

我正在使用Windows 7和apache-maven-3.0.4插件.当我mvn -P jacoco4 install从cygwin终端或命令提示终端输入时,Maven下载并运行JaCoCo插件,但是该jacoco.exec文件似乎没有被创建.以下是错误消息:

[ERROR] Unable to read execution data file C:\Users\brownru\workspace64new\vps9\vps-fileserver\target\jacoco.exec: C:\Users\brownru\workspace64new\vps9\vps-fileserver\target\jacoco.exec (The system cannot find the file specified)
java.io.FileNotFoundException: C:\Users\brownru\workspace64new\vps9\vps-fileserver\target\jacoco.exec (The system cannot find the file specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:120)
        at …
Run Code Online (Sandbox Code Playgroud)

xml maven-plugin maven jacoco

21
推荐指数
4
解决办法
4万
查看次数

maven jacoco:没有生成代码覆盖率报告

我正在尝试设置jacoco我的项目的代码覆盖率

我的项目基于 Java 1.8

以下是我的项目中的内容 pom.xml

    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.5.10.201208310627</version>
        <configuration>
            <output>file</output>
            <append>true</append>
        </configuration>
        <executions>
            <execution>
                <id>jacoco-initialize</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>jacoco-site</id>
                <phase>verify</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>  
Run Code Online (Sandbox Code Playgroud)

然后我跑 mvn test,看到以下内容

$ mvn test
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building pennyapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- jacoco-maven-plugin:0.5.10.201208310627:prepare-agent (jacoco-initialize) @ pennyapp ---
[INFO] argLine set to -javaagent:/Users/harit/.m2/repository/org/jacoco/org.jacoco.agent/0.5.10.201208310627/org.jacoco.agent-0.5.10.201208310627-runtime.jar=destfile=/Users/harit/code/idea/pennyapp/target/jacoco.exec,append=true,output=file
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ pennyapp ---
[WARNING] Using platform encoding (UTF-8 actually) to …
Run Code Online (Sandbox Code Playgroud)

java code-coverage maven jacoco

21
推荐指数
5
解决办法
4万
查看次数

Android-kotlin 项目中的 Jacoco 代码覆盖率 0%

我一直在尝试在 Android kotlin 项目中实现 Jacoco 来实现代码覆盖率。我使用默认的 android studio 覆盖工具,但它不可靠。所以我尝试实现 Jacoco,但即使测试成功通过,我的代码覆盖率也为 0%。

0% 覆盖率 -

在此输入图像描述

试运行成功——

在此输入图像描述

这是 gradle 脚本 -

plugins {
id 'com.android.library'
id 'kotlin-android'
id 'jacoco'
}


android {
compileSdkVersion 30
buildToolsVersion "30.0.3"

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    consumerProguardFiles "consumer-rules.pro"
}

buildTypes {
    debug {
        debuggable true
        minifyEnabled false
        testCoverageEnabled true
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = …
Run Code Online (Sandbox Code Playgroud)

android jacoco kotlin

21
推荐指数
2
解决办法
7876
查看次数