问题描述
我正在研究使用 a project 处理数字签名的 CEF DSS library。该库带有一个大型测试套件,显然我们对它不感兴趣,因此它不在 mvn test
上运行。
我们希望为我们的测试套件创建代码覆盖率报告,作为提高测试覆盖率的努力的一部分,我的第一次尝试是运行 mvn cobertura:cobertura
以获取 cobertura 报告。然而,出于某种原因,这现在运行 CEF DSS 组件的完整测试套件,这不是我感兴趣的东西。
为什么会这样?我怎样才能避免它?
解决方法
说明:
检测已编译的类,运行单元测试并生成 Cobertura 报告。
属性:
- ...
- 在执行自身之前调用生命周期阶段
test
的执行。
没有可选参数可以跳过这个。
但是,您将这个库用于:
<dependencyManagement>
<dependencies>
<!-- DSS -->
<dependency>
<groupId>eu.europa.ec.joinup.sd-dss</groupId>
<artifactId>dss-...</artifactId>
<version>${dss.version}</version>
...
test
阶段通常在您项目的 src/test/java
目录中运行测试代码。我无法理解(还)为什么要执行库的测试。
顺便说一句:
- 如果您在
<dependencyManagement>
中配置了依赖项,例如使用<exclusions>
,您在实际使用它时(在您的子项目的 POM 中)不必重复该配置。这就是<dependencyManagement>
的用途。 :) -
<dependency><scope>compile
是默认值。您不必明确声明它(在signandvalidation-ws
' POM 中)。