我如何让 mvn cobertura:cobertura 不运行比 mvn test 更多的测试

问题描述

我正在研究使用 a project 处理数字签名的 CEF DSS library。该库带有一个大型测试套件,显然我们对它不感兴趣,因此它不在 mvn test 上运行。

我们希望为我们的测试套件创建代码覆盖率报告,作为提高测试覆盖率的努力的一部分,我的第一次尝试是运行 mvn cobertura:cobertura获取 cobertura 报告。然而,出于某种原因,这现在运行 CEF DSS 组件的完整测试套件,这不是我感兴趣的东西。

为什么会这样?我怎样才能避免它?

解决方法

cobertura:cobertura

说明:

检测已编译的类,运行单元测试并生成 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 中)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...