当前位置: 首页 > 知识库问答 >
问题:

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

宗政德宇
2023-03-14

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

>

  • -src主java页面

    -src主java助手

    -src-测试-java-资源-功能

    -src测试java步骤

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

              <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主包中的所有类。根据不同的google搜索和SO帖子,我试图修改POM以排除页面,并在代码覆盖率报告中只包含步骤。但不知何故,它一直显示主包中的所有文件。

    我是不是走错了路?我只想创建一个报告,它只覆盖我执行的测试,而不是主包中的所有文件。

  • 共有1个答案

    云捷
    2023-03-14

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

     类似资料:
    • 我正在将ANT构建转换为Maven。我不用声纳。 在Maven中,Jacoco似乎并没有报告单元测试本身的覆盖率,而ANT报告。我也一直在尝试为我的Maven build获得这个,但是我没有找到任何东西。 似乎我应该添加一个

    • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执

    • 问题内容: 我最近在eclipse中使用了EclEmma插件来查找我的应用程序中JUnits的代码覆盖范围,并且效果很好。 在下一步中,我希望能够找到端到端测试/功能测试的代码覆盖范围,这些代码在外部从我们的应用程序中调用(它们驻留在单独的服务器上)。 基本上,我们将应用程序打包为jar(我们使用maven)并将其部署在服务器上。我们可以在此位置触发功能测试。 在这种情况下,有没有办法找到代码覆盖

    • 我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j

    • 我在声纳中的代码覆盖率显示为0%,这不是真的,因为我有单元测试。 格拉德尔 当我打开inside然后我可以看到成功的单元测试。 我在Jenkins环境中运行作为

    • 问题内容: 试图使用Jacoco在Android的Robolectric测试中获得代码覆盖率,但在创建报告时,它只是拒绝承认我的Robolectric测试。 我的jacoco.gradle文件如下: 通过此设置,我可以获得“覆盖率”报告,但是尽管在“ src / test / java”中进行了Robolectric测试,但覆盖率为0%。 如果我在该文件中添加以下代码: 当Gradle尝试同步时,