Eclemma总是报告0%的代码覆盖率

ren*_*rof 12 java eclemma

我的应用程序有一个Maven测试项目.

JUnit测试运行正常,代码覆盖率测试也运行.

但该报告始终显示0%的代码覆盖率.

我该怎么办?

小智 5

根据官方网站,Eclemma是Eclipse的代码覆盖插件,基于JaCoCo库.

由于您希望在eclipse之外使用相同的代码覆盖引擎,您应该在项目的Maven配置(pom)中包含插件Jacoco,如下所示(此代码是从Agile Engineering博客复制的):

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.6.0.201210061924</version>
            <executions>
                <execution>
                    <id>jacoco-initialize</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-site</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

要运行测试,只需在命令行工具上键入以下内容:

mvn clean test
Run Code Online (Sandbox Code Playgroud)

ps:你也可以使用像CoberturaEmma这样的其他代码覆盖插件.


Ste*_*eve 2

以防万一您忘记执行这些操作:

  1. 您是否使用 @Test 注释您的测试?
  2. 您将该类作为 JUnit 测试用例运行还是通过覆盖按钮运行?

我不确定问题的原因是什么,因为它总是对我有用。你是从eclipse本身安装的吗?尝试卸载它,然后从 eclipse 重新安装。以下是以防万一的方法:

  1. 在 Eclipse 中,单击“帮助”>“安装新软件”
  2. 单击“添加”,然后输入以下内容:
  3. 选择EclEmma,然后安装

  • 我遇到了类似的问题,这是因为我用 @RunWith(PowerMockRunner.class) 注释了该类 - 一旦我将其更改为不需要这个,那么代码覆盖率又回来了 (2认同)