Emma代码覆盖率,源路径中找不到源文件

Dan*_*ani 8 java emma maven

要生成emma报告,我运行了这些命令.

  1. mvn install -Pwith-emma 
  2.  java -cp %USERPROFILE%/.m2/repository/emma/emma/2.1.5320/emma-2.1.5320.jar emma report -r xml,html -in coverage.ec -in target/coverage.em
Run Code Online (Sandbox Code Playgroud)

在运行命令之后,我能够生成emma报告,并且能够按照我的要求排除包,并且它给我全班覆盖报告.但问题是当我点击任何特定的类来查看我得到的文件报告(代码覆盖率)时:

[在源路径中找不到源文件'com/test/test.java'当我生成emma报告时.

这是关于emma-maven-plugin <的我的pom.xml条目

 <profile>
        <id>with-emma</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>emma-maven-plugin</artifactId>
                    <inherited>true</inherited>
                    <executions>
                        <execution>
                            <id>instrument</id>
                            <phase>process-test-classes</phase>
                             <configuration>
                               <filters>
                                    <filter>-com.test.generated.ceq.*</filter>
                                       <filter>-com.activities.*</filter>
                                </filters>
                      </configuration>
                            <goals>
                                <goal>instrument</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
Run Code Online (Sandbox Code Playgroud)

检查了很多链接后我觉得命令有问题

 2.  java -cp %USERPROFILE%/.m2/repository/emma/emma/2.1.5320/emma-2.1.5320.jar emma report -r xml,html -in coverage.ec -in target/coverage.em
Run Code Online (Sandbox Code Playgroud)

但尝试了许多但无法解决此问题.谢谢.

小智 0

丹尼,

我不明白 - 您是使用 EMMA 的命令行选项还是想使用 emma maven 插件?

如果它是第一个,只需运行您的命令并在其中包含过滤器。您可以使用此参考:http://emma.sourceforge.net/reference_single/reference.html#tool-ref.instr.cmdline

如果你想使用 Maven,请检查:http://mojo.codehaus.org/emma-maven-plugin/usage.html。我想强调以下一段:

在单独的 jvm 中执行测试非常重要,因为 EMMA 会在 JVM 终止时转储覆盖率。测试需要不同的类目录来加载检测的类。(这些类未检测到位,因为我们不希望已发布的罐子中的仪表类。)