如何使用GWT,maven,jacoco设置覆盖范围?

时间:2013-03-26 13:39:01

标签: gwt maven code-coverage jacoco

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

它适用于我的jUnit测试

mvn test jacoco:report

但是当我跑步时

mvn gwt:test jacoco:report 

生成一个空报告。

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

的pom.xml

GWT:

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

Jacoco:

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

1 个答案:

答案 0 :(得分:3)

在命令行'

中输入此命令
mvn help:describe -Dplugin=org.jboss.errai:jacoco-gwt-maven-plugin -Ddetail=true 

您将从jacoco-gwt-maven-plugin获得详细输出。在此列表中,您可以看到可以设置的所有配置参数。您在创建报告时出现错误的错误:基于c:\ Users ......不存在与您在运行我上面指定的命令时看到的snapshotDirectory设置有关。当您的项目编译时,它会创建一个放置所有运行时类的文件夹。您需要找到您的maven pom放置这些类文件的位置,然后在您的pom中指定此路径。所以说你的类文件的路径位置是'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 Framework。要了解有关Errai框架的更多信息,请转至http://errai.github.io/