Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jacoco:无法读取执行数据文件,ant任务_Java_Ant_Code Coverage_Jacoco - Fatal编程技术网

Java Jacoco:无法读取执行数据文件,ant任务

Java Jacoco:无法读取执行数据文件,ant任务,java,ant,code-coverage,jacoco,Java,Ant,Code Coverage,Jacoco,信息: java版本:1.8.0_66 ant版本:1.9.6 我想做的是: 为在AWS windows 2k12服务器上运行的服务器代码提供代码覆盖率报告 我所做的: 完全停止服务器 将jacocoagent.jar放入服务器的bin文件夹。注意:这是在程序文件文件夹内 将-javaagent设置附加到服务器启动期间使用的JAVA_选项 启动服务器 从本地笔记本电脑上运行我的样本测试 完全停止服务器。这产生了一个184kb的jacoco.exec 已将my build.xml复制到jacoc

信息: java版本:1.8.0_66 ant版本:1.9.6

我想做的是:

为在AWS windows 2k12服务器上运行的服务器代码提供代码覆盖率报告

我所做的:

  • 完全停止服务器
  • 将jacocoagent.jar放入服务器的bin文件夹。注意:这是在程序文件文件夹内
  • 将-javaagent设置附加到服务器启动期间使用的JAVA_选项
  • 启动服务器
  • 从本地笔记本电脑上运行我的样本测试
  • 完全停止服务器。这产生了一个184kb的jacoco.exec
  • 已将my build.xml复制到jacoco.exec所在的同一目录。C:/path/to/exec/jacoco.exec
  • 已将jacocant.jar复制到C:/path/to/jacocant.jar
  • 将cd放入C:/path/to/exec/并运行命令“ant”
结果:

无法读取执行数据文件C:/path/to/exec/jacoco.exec时出错

Build.xml:

<project name="Example" default="rebuild" xmlns:jacoco="antlib:org.jacoco.ant">

<description>
  Example Ant build file that demonstrates how a JaCoCo coverage report
  can be itegrated into an existing build in three simple steps.
</description>

<property name="result.dir" location="." />
<property name="result.classes.dir" location="${result.dir}/path/to/classes" />
<property name="result.report.dir" location="${result.dir}/report" />
<property name="result.exec.file" location="${result.dir}/jacoco.exec" />

<!-- Step 1: Import JaCoCo Ant tasks -->
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
    <classpath path="../jacocoant.jar" />
</taskdef>

<target name="clean">
    <delete dir="${result.report.dir}" />
</target>

<target name="report">
    <!-- Step 3: Create coverage report -->
    <jacoco:report>

        <!-- This task needs the collected execution data and ... -->
        <executiondata>
            <file file="${result.exec.file}" />
        </executiondata>

        <!-- the class files and optional source files ... -->
        <structure name="JaCoCo Code Coverage Report">
            <classfiles>
                <fileset dir="${result.classes.dir}" >
                    </fileset>
            </classfiles>
            <sourcefiles encoding="UTF-8">
                <fileset dir="${src.dir}" />
            </sourcefiles>
        </structure>

        <!-- to produce reports in different formats. -->
        <html destdir="${result.report.dir}" />
        <csv destfile="${result.report.dir}/report.csv" />
        <xml destfile="${result.report.dir}/report.xml" />
    </jacoco:report>
</target>

示例Ant构建文件,演示了JaCoCo覆盖率报告
可以通过三个简单的步骤将其集成到现有构建中。

我不确定问题是出在exec文件上(可能已损坏),还是出在我的整个设置上。 任何有助于识别和解决问题的帮助都将不胜感激


谢谢

我最近也有同样的问题,我花了很长时间才弄明白。我希望我如何解决这将帮助你或其他人

  • 使用
    ant-verbose report
    查看详细信息。我使用了“ant-verbose report”,得到了这样一条消息:“java.io.IOException:不兼容的版本1007”
  • 在使用maven时,我在pom.xml中添加了以下行。注意:版本与javaagent的版本相同
  • org.jacoco org.jacoco.ant 0.7.4.20150262128


    最后,报告成功生成。

    我是在使用gradle和jaCoCo时得到的


    我删除了build/目录,并重新运行
    /gradlew jacotestreport
    ,这次通过了

    类似于@sofia的解决方案,但对于gradle: 我删除了一个又一个工具版本。而不是

    allprojects {
        jacoco {
            toolVersion = '0.7.1.201405082137'
        }
    }
    
    我使用了以下方法

    allprojects {
        jacoco {
            toolVersion = '0.7.1'
        }
    }
    

    你找到答案了吗?