【问题标题】:how do I make mvn cobertura:cobertura not run more tests than mvn test如何使 mvn cobertura:cobertura 运行的测试不超过 mvn test
【发布时间】:2021-09-08 19:35:23
【问题描述】:

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

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

为什么会这样?如何避免?

【问题讨论】:

  • 您确定您在同一个目录中运行mvn testmvn cobertura:cobertura,并且您本地项目的src 目录看起来像在GitHub 上,即没有更多来源吗?
  • @GeroldBroser 是的。我所做的只是更改我们 CI 系统的配置,因此以前读取 mvn test 的行现在读取为 mvn cobertura:cobertura。 CI 会注意确保在作业开始时没有未提交的文件(即没有更多的源和没有预编译的文件)不存在。
  • 您能否提供构建作业日志的相关部分([一些] 执行 CEF DSS 测试的部分)?
  • 现在做不到,但会尽快做

标签: java maven cobertura maven-cobertura-plugin


【解决方案1】:

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 目录中运行测试代码。我(还)不明白为什么要执行图书馆的测试。

顺便说一句:

  • 如果您在 &lt;dependencyManagement&gt; 中配置依赖项,例如使用&lt;exclusions&gt;,您不必在实际使用它时重复该配置(在您的子项目的 POM 中)。这就是&lt;dependencyManagement&gt; 的用途。 :)
  • &lt;dependency&gt;&lt;scope&gt;compile 是默认值。您不必显式声明它(在 signandvalidation-ws' POM 中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 2023-01-14
    • 2015-12-21
    • 1970-01-01
    • 2021-08-14
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多