分析Tomcat中Web应用程序的覆盖范围

时间:2019-01-15 09:37:13

标签: tomcat vue.js code-coverage war test-coverage

我有一个使用VueJS开发的应用程序,并与Tomcat进行了战争。 我需要了解战争情况,并与Selenium分别测试runnig。 如果你们中的任何一个能为我指明正确的方向……将不胜感激!

1 个答案:

答案 0 :(得分:0)

使用JaCoCo进行此操作需要两个步骤:

1)将jacocoagent添加到您的Apache Tomcat中,该Tomcat收集coverage数据并在TCP端口上侦听转储这些数据的请求。

apache-tomcat/bin/setenv.bat中添加Java选项:

set JAVA_OPTS=-javaagent:c:\\path\\to\\jacoco\\lib\\jacocoagent.jar=includes=your.classes.packages.*,classdumpdir=jacocoClasses,output=tcpserver 

2)如果使用Maven执行测试,则可以使用jacoco-maven-plugin连接到jacocoagent打开的TCP端口,该端口从Apache Tomcat收集coverage数据。

不完整的示例:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>default-prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
            <configuration>
                <includes>
                    <include>your/classes/packages/**</include>
                </includes>
            </configuration>
        </execution>
        <execution>
            <id>default-dump-report</id>
            <phase>test</phase>
            <goals>
                <goal>dump</goal>
            </goals>
            <configuration>
                <address>localhost</address>
                <reset>true</reset>
                <destFile>${project.build.directory}/jacoco.exec</destFile>
            </configuration>
        </execution>
        <execution>
            <id>default-report</id>
            <phase>test</phase>
            <goals>
                <goal>report</goal>
            </goals>
            <configuration>
                <includes>
                    <include>your/classes/packages/**</include>
                </includes>
            </configuration>
        </execution>
    </executions>
</plugin>

请注意,JaCoCo的覆盖率数据仅适用于与它们一起收集的确切.class文件(由校验和标识)。单个.java文件的两次编译可能会导致.class文件具有不同的校验和。 JaCoCo报告将因此宣布它未被发现。