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

时间:2014-03-26 10:40:56

标签: java maven emma

要生成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

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

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

这是关于emma-maven-plugin<

的my 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>

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

 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

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

2 个答案:

答案 0 :(得分:1)

AFAIK,您应该添加“艾玛报告”&#39;命令行-sp标志以包含报告中的源:

java -cp %USERPROFILE%/.m2/repository/emma/emma/2.1.5320/emma-2.1.5320.jar emma report -r xml,html -sp /<path-to-project>/src/main/java/ -sp /<path-to-another-project>/src/main/java/ -in coverage.ec -in target/coverage.em

答案 1 :(得分: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终止时转储覆盖范围。测试需要一个不同的类目录来加载已检测的类。(这些类没有检测到因为我们不希望在已发布的jar中使用已修改的类。)