java - 使用 Jacoco 进行 Cucumber 测试的代码覆盖率
问题描述
我正在尝试集成 Jacoco 以获得使用 Maven 进行 Cucumber 测试的代码覆盖率。以下是我的项目结构:
-src-main-java-Pages
-src-main-java-Helper
-src-test-java-resources-features
-src-test-java-步骤
以下是我的 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 以排除页面并在我的代码覆盖率报告中仅包含步骤。但不知何故,它继续显示主包中的所有文件。
我采取了错误的方法吗?我只想创建一个报告,该报告仅针对我执行的测试而不是主包中的所有文件进行代码覆盖。
解决方案
请参阅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
。
推荐阅读
- javascript - Javascript ; 从对象数组动态生成的表:如何将键添加为数据单元的类
- javascript - 反应:无法启动旧项目。为什么?
- amazon-web-services - 仅使用客户端 ID 检索用户池 ID
- powershell - 尝试使用 dsquery 使用 Powershell 禁用非活动 AD 计算机
- javascript - 我纠正了这个错误内部服务器错误,部署后我看不到输出
- python - Python如何将换行符转换为int()
- javascript - 有没有使用 jsViews/jsRender 和 Web 组件作为模板引擎的用例?
- c++ - Spring Kafka:ReplyingKafkaTemplate 回复的 C++ 生产者
- python - 我无法运行ezdxf,
- c - 为什么 rewind() 后跟 fscanf() 不反映在磁盘上所做的更改?