首页 > 解决方案 > 使用 Jacoco 进行 Cucumber 测试的代码覆盖率

问题描述

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

以下是我的 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 包中的所有类。根据不同的谷歌研究和 SO 帖子,我尝试修改我的 POM 以排除页面并在我的代码覆盖率报告中仅包含步骤。但不知何故,它继续显示主包中的所有文件。

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

标签: javamavenseleniumcucumberjacoco

解决方案


请参阅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


推荐阅读