0

我正在尝试为我的 GWT Maven 项目生成代码覆盖率。

它适用于我的 jUnit 测试

mvn test jacoco:report

但是当我跑步时

mvn gwt:test jacoco:report 

生成一个空报告。

运行 gwt:tests 时如何获得代码覆盖率?

Pom.xml

总重量:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.5.1</version>
<configuration>
    <module>${gwtModule}</module>
    <gwtVersion>2.5.1</gwtVersion>
    <runTarget>https://localhost:8443/dashboard/mainview.jsp</runTarget>
    <noServer>true</noServer>
    <sourcesOnPath>true</sourcesOnPath>
    <hostedWebapp>${war.target}</hostedWebapp>
    <mode>HtmlUnit</mode>
</configuration>
<executions>
    <execution>
        <configuration>
            <extraJvmArgs>-Xmx512m</extraJvmArgs>
        </configuration>
        <goals>
            <goal>compile</goal>
            <goal>test</goal>
        </goals>
    </execution>
</executions>

雅可可:

<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.6.2.201302030002</version>
<configuration>
    <destfile>${basedir}/target/coverage-reports/jacoco-unit.exec</destfile>
    <datafile>${basedir}/target/coverage-reports/jacoco-unit.exec</datafile>
</configuration>
<executions>
    <execution>
        <id>jacoco-initialize</id>
        <goals>
            <goal>prepare-agent</goal>
        </goals>
    </execution>
    <execution>
        <id>jacoco-site</id>
        <phase>package</phase>
        <goals>
            <goal>report</goal>
        </goals>
    </execution>
</executions>

4

1 回答 1

3

在命令行中输入此命令'

mvn help:describe -Dplugin=org.jboss.errai:jacoco-gwt-maven-plugin -Ddetail=true 

您将从 jacoco-gwt-maven-plugin 获得详细的输出。在此列表中,您可以看到所有可以设置的配置参数。您在创建报告时出现错误时出现的错误: basedir c:\Users...... 不存在与您在运行我上面指定的命令时看到的 snapshotDirectory 设置有关。当您的项目编译时,它会创建一个放置所有运行时类的文件夹。你需要找到你的 maven pom 将这些类文件放在哪里,然后在你的 pom.xml 中指定这个路径。所以说你的类文件的路径位置是'target/test-classes',那么你的 pom 将是:

<plugin>
  <groupId>org.jboss.errai</groupId>
  <artifactId>jacoco-gwt-maven-plugin</artifactId>
  <version>0.5.4.201202141554</version>
  <configuration>
    <snapshotDirectory>${project.build.directory}/test-classes</snapshotDirectory>
  </configuration>
</plugin>

kesse 还要注意的另一件事是,您最初的问题与 org.jacoco 中的 jacoco-maven-plugin 有关。我也未能使用此插件与 GWT 测试用例一起获得覆盖结果。但是,上面的 Thomas Broyer 将您指向 org.jboss.errai 组中的 jacoco-gwt-maven-plugin。这个 Errai 组是 JBoss 开发者社区的一部分,这个插件与 Errai 框架有关。因此,为了使用 GWT 测试用例从 Errai 插件获取代码覆盖率结果,您必须使用 Errai 框架。要了解有关 Errai 框架的更多信息,请访问http://errai.github.io/

于 2013-05-14T21:59:29.843 回答