执行 JaCoCo 时出现“由于缺少执行数据文件而跳过 JaCoCo 执行”

2023-11-27

我正在使用 Maven 3.0.3、JUnit 4.8.1 和 Jacoco 0.6.3.201306030806,并且我正在尝试创建测试覆盖率报告。

我有一个仅包含单元测试的项目,但无法运行报告,我反复收到错误:Skipping JaCoCo execution due to missing execution data file当我跑步时:

mvn clean install -P test-coverage

这是我的 pom 的配置方式:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.14.1</version>
  <configuration>
    <reuseForks>true</reuseForks>
    <argLine>-Xmx2048m</argLine>
  </configuration>
</plugin>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>2.14.1</version>
  <configuration>
    <reuseForks>true</reuseForks>
    <argLine>-Xmx4096m -XX:MaxPermSize=512M ${itCoverageAgent}</argLine>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>integration-test</goal>
        <goal>verify</goal>
      </goals>
    </execution>
  </executions>
</plugin>
...
<profile>
  <id>test-coverage</id>
  <build>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.6.3.201306030806</version>
        <configuration>
          <destfile>${basedir}/target/coverage-reports/jacoco-unit.exec</destfile>
          <datafile>${basedir}/target/coverage-reports/jacoco-unit.exec</datafile>
        </configuration>
        <executions>
          <execution>
            <id>prepare-unit-tests</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <!-- prepare agent for measuring integration tests -->
          <execution>
            <id>prepare-integration-tests</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <phase>pre-integration-test</phase>
            <configuration>
              <propertyName>itCoverageAgent</propertyName>
            </configuration>
          </execution>
          <execution>
            <id>jacoco-site</id>
            <phase>verify</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

我的所有测试都成功运行。以下是 Maven 的一些输出:

[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:prepare-agent (prepare-unit-tests) @ myproject ---
[INFO] argLine set to -javaagent:/Users/davea/.m2/repository/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002-runtime.jar=destfile=/Users/davea/Dropbox/workspace/myproject/target/jacoco.exec
[INFO] 
    ...
Tests run: 14, Failures: 0, Errors: 0, Skipped: 0

[INFO]
    ...
[INFO] 
[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:prepare-agent (prepare-integration-tests) @ myproject ---
[INFO] itCoverageAgent set to -javaagent:/Users/davea/.m2/repository/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002-runtime.jar=destfile=/Users/davea/Dropbox/workspace/myproject/target/jacoco.exec 
[INFO] 
[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (default) @ myproject ---
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent!
[INFO] 
[INFO] --- maven-failsafe-plugin:2.14.1:verify (default) @ myproject ---
[INFO] Failsafe report directory: /Users/davea/Dropbox/workspace/myproject/target/failsafe-reports
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent!
[INFO] 
[INFO] --- jacoco-maven-plugin:0.6.2.201302030002:report (jacoco-site) @ myproject ---
[INFO] Skipping JaCoCo execution due to missing execution data file
[INFO] 

有什么想法我缺少什么配置吗?


jacoco-maven-插件:0.7.10-SNAPSHOT

From jacoco:准备代理说的是:

在 maven-surefire-plugin 的情况下执行此操作的方法之一是 使用语法进行后期属性评估:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <argLine>@{argLine} -your -extra -arguments</argLine>
  </configuration>
</plugin>

请注意@{argLine}添加到-your -extra -arguments.

Thanks 斯拉瓦·塞姆申注意到变化并在评论中举报.

jacoco-maven-插件:0.7.2-SNAPSHOT

下列的jacoco:准备代理说的是:

[org.jacoco:jacoco-maven-plugin:0.7.2-SNAPSHOT:prepare-agent]准备一个指向 JaCoCo 运行时代理的属性,该代理可以 作为 VM 参数传递给被测应用程序。根据 项目打包类型默认具有以下属性 名称已设置:

  • tycho.testArgLine 用于打包类型 eclipse-test-plugin 和
  • argLine 否则。

请注意,这些属性不得被覆盖 测试配置,否则无法附加 JaCoCo 代理。如果 您需要自定义参数,请附加它们。例如:

<argLine>${argLine} -your -extra -arguments</argLine>

结果 覆盖率信息是在执行期间默认收集的 当进程终止时写入文件。

你应该改变以下行maven-surefire-plugin插件配置来自(注意${argLine} inside <argLine>):

<argLine>-Xmx2048m</argLine>

to

<argLine>${argLine} -Xmx2048m</argLine>

对其他插件也进行必要的更改maven-failsafe-plugin并替换以下内容(再次注意${argLine}):

<argLine>-Xmx4096m -XX:MaxPermSize=512M ${itCoverageAgent}</argLine>

to

<argLine>${argLine} -Xmx4096m -XX:MaxPermSize=512M ${itCoverageAgent}</argLine>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

执行 JaCoCo 时出现“由于缺少执行数据文件而跳过 JaCoCo 执行” 的相关文章

随机推荐

  • 为什么需要 HTML 字符实体?

    为什么需要 HTML 字符实体 他们有什么好处 我不明白有什么意义 主要有两件事 它们允许您使用当前字符集中未定义的字符 例如 您可以合法地使用 ASCII 作为字符集 并且仍然通过实体包含任意 Unicode 字符 正如 Simon 所指
  • 使用 Perl 的 HTTP 多部分响应

    是否可以像多部分请求一样提供 HTTP 多部分响应 场景是这样的 我想提供一个 URL 它采用 EmployeeID 参数 作为回报 响应应包含员工的照片 最新的工资单以及姓名 年龄和地址等信息 接收端不是浏览器 而是一个获取此响应并稍后处
  • bash:将某些内容回显到窗口右端(右对齐)

    我正在寻找生成在 bash 中右对齐的成功 失败消息 一个例子是 apache2 执行时产生的结果 sudo etc init d apache2 reload etc 在上面的例子中 apache2 产生的结果非常漂亮和简洁 OK or
  • C++ 正则表达式字符串捕获

    尝试让 C 正则表达式字符串捕获工作 我已经尝试了 Windows 与 Linux Boost 与本机 C 0x11 的所有四种组合 示例代码是 include
  • 如何在 SQL Server 2008 中创建序列

    我正在使用以下代码在 SQL Server 中创建序列 但它显示错误为未知对象类型 请给出解决方案 这是我的代码 create sequence seqval start with 100 increment by 1 minvalue 0
  • SqlAlchemy 在查询表对象时不返回所有行,但在查询表对象列时返回所有行

    更新 下面的解决方案 我对 SqlAlchemy 非常陌生 所以如果这是一个明显的问题 请原谅 当我查询 Table 对象时 我只得到一个结果 数据库中的第一个结果 我的过滤器有 600 多个结果 当我按表上的列查询时 它会返回我期望的所有
  • 我应该在单例上实现 IDisposable 吗?

    我有一个 Windows 服务 其中包含一个单例 该单例又使用一些记录器 消息队列侦听器等 这些类实现了IDisposable 我应该实施IDisposable在单例本身中还是做其他事情来确保服务停止 崩溃后 本机资源一切正常 单例是这样实
  • 使用 ElasticSearch JDBC River 从表中获取更改

    我正在为 ElasticSearch 配置 JDBC River 但找不到任何好的配置示例 我已阅读全部pages on 弹性搜索河jdbc GitHub 我有一个 SQL 查询 需要每 X 秒从所有表列中获取更改 我如何告诉 JDBC R
  • symfony2 获取实体上的所有验证约束(yml、xml、注释)

    我试图获取实体上的所有验证约束并将这些约束转换为 Jquery 验证规则 现在我能够获取注释定义的约束 感谢 Symfony2 获取实体的验证约束 但我在获取 xml 和 yml 时遇到一些问题 xml file loader new Xm
  • 无法使用 Spring Security 创建 CSRF 令牌

    我在 Spring MVC 应用程序中使用 Spring Security 3 2 3 并得到一些意外的行为 根据文档在这里 应该可以使用 csrf token 在我的 html 的元标记中 我使用 JQuery 从中提取 内容 的值 并使
  • 故事板不包含标识符为“MainWindow”的控制器

    我正在尝试实例化一个NSWindowController来自我的 OS X 应用程序中的故事板 NSWindowController mainWindowController NSStoryboard storyboardWithName
  • 如何允许用户从他的相机胶卷或照片库中选取照片?

    我正在制作一个小照片编辑应用程序来娱乐 用户必须从相机胶卷中选择一张照片 然后将其导入进行修改 这通常是如何运作的 我见过许多应用程序允许使用看起来总是相同的标准控制器 是否也可以直接访问该库或自定义该控制器的外观 我应该从哪里开始寻找 最
  • 如何删除输入文本元素上的边框突出显示

    当 HTML 元素被 聚焦 当前被选中 被选项卡插入 时 许多浏览器 至少 Safari 和 Chrome 会在其周围放置蓝色边框 对于我正在处理的布局 这会分散注意力并且看起来不正确
  • C# 像 C++ 一样将所有内容设为公共/私有? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我最近开始学习 C 但我有一些 C 背景 我想知道我会怎么做类似的事情 class em
  • 需要一个简单的正则表达式来查找单个单词中的数字

    我有以下 url 路由 我想确保该路由的一部分只接受数字 因此 我可以提供一些检查单词的正则表达式 页 当前页 那么 有人能给我一个正则表达式 当单词是大于 0 的数字 任何 int 时 即 1 int max 它会匹配 1 9 0 9 其
  • 如何在 AVAudioPlayer 中静音?

    我创造了AVAudioPlayer 现在我想在用户单击按钮时将其静音 这是我尝试过的 player volume 1 0 when first time i initiate my player IBAction speakerOnOff
  • 如何一次只显示一个对话框?

    我的 Android 应用程序在单击按钮时显示一个 AlertDialog 当我多次单击该按钮时 会创建多个对话框 我怎样才能解决这个问题 这是我的代码 button setOnClickListener new OnClickListen
  • Firemonkey 中的动画 GIF

    我正在尝试使用 TImage 以 Firemonkey HD 形式显示动画 GIF 但我没有看到任何动画方法 使用 Vcl Imaging gifImg 不是一个选项 因为类型不同 有人可以建议一种方法来解决这个问题 或者可能是在 Fire
  • 你能列出函数接收的关键字参数吗?

    我有一个字典 我需要将键 值作为关键字参数传递 例如 d args kw1 value1 kw2 value2 example d args 这工作正常 but如果 d args 字典中存在不被接受的值example函数 它显然死了 比如说
  • 执行 JaCoCo 时出现“由于缺少执行数据文件而跳过 JaCoCo 执行”

    我正在使用 Maven 3 0 3 JUnit 4 8 1 和 Jacoco 0 6 3 201306030806 并且我正在尝试创建测试覆盖率报告 我有一个仅包含单元测试的项目 但无法运行报告 我反复收到错误 Skipping JaCoC