Java Jacoco测试覆盖率报告显示为0%

Java Jacoco测试覆盖率报告显示为0%,java,maven,jbehave,jacoco,Java,Maven,Jbehave,Jacoco,当从不同的代码库执行业务测试时,我必须获得应用程序的代码覆盖率 我使用:Maven作为我的构建 Jbehave作为我的测试框架。 测试是用java编写的 我的应用程序是部署在tomcat上的一组war文件 应用程序代码库与测试代码库是分开的 为了获得保险,我遵循了以下步骤 使用maven编译测试代码 将应用程序类从生成位置(${app.code.dir}/target/classes)复制到${test.code.dir}/target/classes [3] 通过maven运行测试和jacoc

当从不同的代码库执行业务测试时,我必须获得应用程序的代码覆盖率

我使用:Maven作为我的构建 Jbehave作为我的测试框架。 测试是用java编写的

我的应用程序是部署在tomcat上的一组war文件

应用程序代码库与测试代码库是分开的

为了获得保险,我遵循了以下步骤

使用maven编译测试代码

将应用程序类从生成位置(${app.code.dir}/target/classes)复制到${test.code.dir}/target/classes

[3] 通过maven运行测试和jacoco报告

mvn构建:我一直保持

<profile>
        <id>coverage</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.6.3.201306030806</version>
                    <executions>
                        <execution>
                            <id>default-prepare-agent</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration>
                                <skip>false</skip>
                                <destFile>${basedir}/target/jacoco-coverage.exec</destFile>
                            </configuration>
                        </execution>
                        <execution>
                            <id>default-report</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                            <configuration>
                                <!-- <skip>true</skip> -->
                                <excludes>
                                    <exclude>com/mytest/bdt/**</exclude><!-- test classes -->
                                    <exclude>com/mytest/bdd/**</exclude><!-- test classes -->
                                </excludes>

                                <dataFile>${basedir}/target/jacoco-coverage.exec</dataFile>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
有了这个,我得到了一个由应用程序包生成的覆盖率报告。但覆盖率显示为0%

在会话链接中,未加载应用程序类。 截图:


有人能帮我吗?

我能解决这个问题,如下所示

  • 将中的应用程序类复制到检测文件夹中

  • 使用Java参数启动应用服务器(mycase中的tomcat)

    -javaagent:$WORKSPACE/target/lib/jacoco-agent-0.6.3.2.jar=includes=*,destfile=$‌​TOMCAT_HOME/jacoco-coverage.exec,append=false
    
    (我已将jacoco代理jar复制到布局处的项目中)

  • 执行测试(可以是自动的,也可以是手动的)

  • 停止tomcat服务器(
    jacoco coverage.exec
    此时更新)

  • 执行ant报告目标。指向更新的jacoco-coverage.exec和复制的应用程序类文件夹

  • 参考:


    感谢@jens schauder指点我将此作为答案发布。

    我可以通过以下方式解决此问题。[1]Copyu应用程序插入到instrmentation floder中。[2] 用java参数启动应用服务器(在我的案例中是tomcat)“-javaagent:$WORKSPACE/target/lib/jacoco-agent-0.6.3.2.jar=includes=*,destfile=$tomcat\u HOME/jacoco coverage.exec,append=false”(我在布局中将jacoco代理jar复制到我的项目中)[3]执行测试(这可以是自动的,也可以是手动的)[4]停止tomcat服务器(此时更新了jacoco-coverage.exec)[5]执行ant报告目标。指向更新的jacoco-coverage.exec和复制的应用程序类文件夹。参考:您应该将其作为答案发布并接受。
    [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ test-bdd-testsuite ---
    [INFO] --- jbehave-maven-plugin:3.7.5:unpack-view-resources (unpack-view-resources) @ test-bdd-testsuite ---
    [INFO] --- jacoco-maven-plugin:0.6.3.201306030806:prepare-agent (default-prepare-agent) @ test-bdd-testsuite ---
    [INFO] argLine set to -javaagent:/home/testUser/.m2/repository/org/jacoco/org.jacoco.agent/0.6.3.201306030806/org.jacoco.agent-0.6.3.201306030806-runtime.jar=destfile=/home/testUser/testProj/trunk/target/jacoco-coverage.exec
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.1:compile (default-compile) @ test-bdd-testsuite ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO] 
    [INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ test-bdd-testsuite ---
    [debug] execute contextualize
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] skip non existing resourceDirectory /home/testUser/testProj/trunk/src/test/resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.1:testCompile (default-testCompile) @ test-bdd-testsuite ---
    [INFO] No sources to compile
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.10:test (default-test) @ test-bdd-testsuite ---
    [INFO] No tests to run.
    [INFO] Surefire report directory: /home/testUser/testProj/trunk/target/surefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    
    Results :
    
    Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] 
    [INFO] --- jbehave-maven-plugin:3.7.5:run-stories-as-embeddables (embeddable-stories) @ test-bdd-testsuite ---
    [INFO] Running stories as embeddables using embedder Embedder[ .....
    
    .....
    .....
    Test execution log comes here .......
    .....
    .....
    
    [INFO] Reports view generated with 1 stories (of which 0 pending) containing 25 scenarios (of which 0 pending)
    [INFO] Meta filters excluded 0 stories and  24 scenarios
    [WARNING] Failures in reports view: 0 scenarios failed
    [INFO] 
    [INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ test-bdd-testsuite ---
    [INFO] Building jar: /home/testUser/testProj/trunk/target/test-bdd-testsuite-1.0.jar
    [INFO] 
    [INFO] --- jacoco-maven-plugin:0.6.3.201306030806:report (default-report) @ test-bdd-testsuite ---
    [INFO] 
    [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ test-bdd-testsuite ---
    [INFO] Installing /home/testUser/testProj/trunk/target/test-bdd-testsuite-1.0.jar to /home/testUser/.m2/repository/com/testCode/bdd/test-bdd-testsuite/1.0/test-bdd-testsuite-1.0.jar
    [INFO] Installing /home/testUser/testProj/trunk/pom.xml to /home/testUser/.m2/repository/com/testCode/bdd/test-bdd-testsuite/1.0/test-bdd-testsuite-1.0.pom
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 21.134s
    [INFO] Finished at: Tue Nov 26 19:18:28 IST 2013
    [INFO] Final Memory: 14M/309M
    [INFO] ------------------------------------------------------------------------
    
    -javaagent:$WORKSPACE/target/lib/jacoco-agent-0.6.3.2.jar=includes=*,destfile=$‌​TOMCAT_HOME/jacoco-coverage.exec,append=false