IntelliJ 12代码覆盖率无法在GWT项目的编辑器中使用

Lui*_*ano 7 ide code-coverage emma intellij-idea

我正在尝试IntelliJ 12,在运行带覆盖的测试后,我无法在编辑器中设置彩色(红色,绿色,黄色).有没有人注意到这个问题,或者只是我无法使其发挥作用?

Cra*_*der 7

默认情况下,代码覆盖率结果仅显示在左侧装订线中,可能很难注意到:

在天沟中显示的覆盖范围

您可以更改装订线颜色或配置IntelliJ IDEA以根据其覆盖状态更改整行(而不是前景)的背景:

覆盖背景设置

现在,更容易看到覆盖状态:

覆盖范围显示为背景


Lui*_*ano 3

最后,我找到了导致 IntelliJ IDEA 12.0.0(以及 12.0.1)代码覆盖率出现故障的原因。

我的项目是一个 GWT 项目,因此需要一些额外的配置来运行 gwt 客户端测试:将源目录添加到类路径中,以便可以无头运行 gwt devmode 进行测试:

 <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <additionalClasspathElements>
                        <!-- the following two lines, causes intellij coverage to stop working -->
                        <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement>
                        <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement>
                    </additionalClasspathElements>
                </configuration>
            </plugin>
        </plugins>
    </build>
Run Code Online (Sandbox Code Playgroud)

将源文件夹添加到 Surefire 的类路径中会导致 IntelliJ IDEA 12.x 错误配置项目(文件.iml)并且覆盖范围停止工作。

请注意,此 Maven 配置在 IntelliJ IDEA 11.x 中没有任何影响,可以完美运行。

要重现该错误,只需将其添加<additionalClasspathElement>到您的 Surefire 配置中,然后右键单击您的项目并执行“Maven->重新导入”,然后运行覆盖率测试;您会发现编辑器错过了有关行覆盖范围的所有信息。

我设法重现了该问题,并且我将提交错误报告。

解决方法是注释掉这两行<additionalClasspathElement>并执行“Maven->Reimport”,然后根据需要取消注释。

Bug 报告IDEA-97920,将在 12.0.2 中修复

  • 这个bug应该在IDEA 12.0.2中修复(EAP即将发布,发布将在几周左右发布)。 (2认同)