使用Jacoco进行黄瓜测试的代码覆盖率

时间:2019-10-24 08:07:31

标签: java maven selenium cucumber jacoco

我正在尝试集成Jacoco,以使用Maven获得有关Cucumber测试的代码覆盖率。以下是我的项目结构:

  • -src-main-java-Pages

  • -src-main-java-Helper

  • -src-test-java-resources-features

  • -src-test-java-Steps

以下是我的POM.xml中的Jacoco配置

          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.2</version>
            <configuration>
                <destFile>${basedir}/target/coverage-reports/jacoco.exec</destFile>
                <dataFile>${basedir}/target/coverage-reports/jacoco.exec</dataFile>
                <outputDirectory>${basedir}/target/coverage-reports/jacoco</outputDirectory>
            </configuration>
            <executions>
                <execution>
                    <id>prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
                <execution>
                    <id>check</id>
                    <goals>
                        <goal>check</goal>
                    </goals>
                    <configuration>
                        <rules>
                            <rule>
                                <element>PACKAGE</element>
                                <includes>
                                    <include>**/*Steps.*</include>
                                </includes>
                            </rule>
                            <rule>
                                <element>PACKAGE</element>
                                <excludes>
                                    <exclude>**/*Pages.*</exclude>
                                    <exclude>**/*Page.*</exclude>
                                </excludes>
                            </rule>
                        </rules>
                    </configuration>
                </execution>
            </executions>
        </plugin>

我能够生成代码覆盖率报告。但是,在该报告中,它涵盖了-src-main软件包中的所有类。根据不同的google研究和SO帖子,我试图修改我的POM以排除Pages,并且在代码覆盖率报告中仅包括Steps。但是以某种方式,它继续显示主包中的所有文件。

我采用错误的方法吗?我只想创建一个报告,该报告仅针对我执行的测试而不是主软件包中的所有文件进行代码覆盖。

1 个答案:

答案 0 :(得分:0)

请参见https://maven.apache.org/guides/mini/guide-configuring-plugins.html-您在配置中指定排除项

<execution>
    <id>check</id>
    <goals>
        <goal>check</goal>

但未配置

<execution>
    <id>report</id>
    <goals>
        <goal>report</goal>

因此它对check有影响,但对report没有影响。