在tomcat

时间:2015-11-05 14:25:29

标签: java groovy maven-2 jacoco

我在为我的网络服务获取Java代码覆盖率报告时遇到了问题。

我能够在编译时使用maven JaCoCo生成报告,仅用于单元测试。

但我的要求如下:

1:我需要在服务器上部署web服务后运行的测试(而不是单元测试)的代码覆盖率报告。

2:这些测试只不过是使用API​​S的简单http请求。(只需点击我的网络服务的APIS并验证其响应)。

3:为了运行这些测试,服务应该正在运行,因为我们只是使用API​​向Web服务发出http请求。

4:运行这些测试后,我们应该获得代码覆盖率报告。

以下是我尝试的步骤:

1:在pom.xml中配置了jacoco-maven-plugin,maven-surefire-plugin和build-helper-maven-plugin

2:通过以下方式将JaCoCo的代理人连接到Maven的JVM:

export MAVEN_OPTS="$MAVEN_OPTS \
-javaagent:$HOME/tools/jacocoagent0.7.5.jar=output=tcpserver,port=6300"

3:使用" mvn jetty启动Web服务器:运行"

4:运行测试(只是http请求到我的网络服务的API)

5:mvn jacoco:dump jacoco:report

6:以后可以在此位置收集报告./target/site/index.html

实际:但它正在为编译时运行的单元测试生成代码覆盖率报告。

预期:它应该为服务运行时运行的测试(使用API​​到Web服务的http请求)生成代码覆盖率报告。

如果我在这里错过了什么,请告诉我。

以下是我的pom.xml文件的快照:

<plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.5.201505241946</version>
            <configuration>
             <dataFile>${basedir}/target/jacoco.exec</dataFile>
            </configuration>
            <executions>
                <execution>
                 <id>jacoco-initialize</id>
                       <phase>initialize</phase>
                 <goals>
                   <goal>prepare-agent</goal>
                 </goals>
                 <configuration>
                              <propertyName>jacoco.agent.argLine</propertyName>
                              <destFile>${basedir}/target/jacoco.exec</destFile>
                 </configuration>
                </execution>
                <execution>
                 <id>jacoco-report</id>
                 <phase>verify</phase>
                 <goals>
                   <goal>report</goal>
                 </goals>
               </execution>         
            </executions>
          </plugin>
            <plugin>          
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.16</version>
              <dependencies>
                <dependency>
                  <groupId>org.apache.maven.surefire</groupId>
                  <artifactId>surefire-junit47</artifactId>
                  <version>2.16</version>
                </dependency>
              </dependencies>
              <configuration>            
            <argLine>-javaagent:/home/user_name/.m2/repository/org/jacoco/org.jacoco.agent/0.7.5.201505241946/org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=${basedir}/target/jacoco.exec</argLine>
              </configuration>
            </plugin>

0 个答案:

没有答案