【问题标题】:Code Coverage for Cucumber Tests using Jacoco使用 Jacoco 进行 Cucumber 测试的代码覆盖率
【发布时间】:2019-10-25 05:30:50
【问题描述】:

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

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

【问题讨论】:

    标签: java maven selenium cucumber jacoco


    【解决方案1】:

    参见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 没有影响。

    【讨论】:

    • 我尝试在报告配置部分也包含 标记。没用!
    • 那么请阅读stackoverflow.com/help/minimal-reproducible-example并提供绝对完整的示例,因为仅pom.xml的sn-p不足以重现您的难度
    • 这里给你另一个提示 - stackoverflow.com/questions/54055625/…
    • 我根据我阅读的其他 SO 帖子在我的问题中提供了详细信息。另外,由于工作中的保密问题,我不能提供任何其他细节。无论如何,您提供的提示,我已经尝试过,但也没有奏效。还是谢谢
    • “我根据我阅读的其他 SO 帖子在我的问题中提供了详细信息。”这正是重点 - 如果您的详细信息与其他问题没有不同,那么这些详细信息不足以诊断问题并提供解决方案
    猜你喜欢
    • 2014-09-26
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2013-03-17
    • 1970-01-01
    • 2016-11-11
    • 2019-01-02
    相关资源
    最近更新 更多