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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Ant 使用JaCoCo对其进行声纳,代码覆盖率为0%_Ant_Selenium_Sonarqube_Jacoco - Fatal编程技术网

Ant 使用JaCoCo对其进行声纳,代码覆盖率为0%

Ant 使用JaCoCo对其进行声纳,代码覆盖率为0%,ant,selenium,sonarqube,jacoco,Ant,Selenium,Sonarqube,Jacoco,我正在使用Ant在RHEL6机器上运行Sonar Java代码分析。对于集成测试分析,我使用JaCoCo sonar插件。我的库类路径中有插件。当我运行Selenium测试时,会生成一个“jacoco.exec”文件(10个测试大约1MB)。然后在我的Sonar Ant目标中激活Jacoco插件,并将其导入Sonar。声纳分析日志显示,已对Jacoco文件进行了分析(耗时约5000毫秒)。然而,我的Sonar IT小部件显示0%的代码覆盖率。通过使用Cobertura,我成功地获得了单元测试代码

我正在使用Ant在RHEL6机器上运行Sonar Java代码分析。对于集成测试分析,我使用JaCoCo sonar插件。我的库类路径中有插件。当我运行Selenium测试时,会生成一个“jacoco.exec”文件(10个测试大约1MB)。然后在我的Sonar Ant目标中激活Jacoco插件,并将其导入Sonar。声纳分析日志显示,已对Jacoco文件进行了分析(耗时约5000毫秒)。然而,我的Sonar IT小部件显示0%的代码覆盖率。通过使用Cobertura,我成功地获得了单元测试代码覆盖率

我的测试目标:

<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
        <classpath path="${buildHome}/libs/jacocoant.jar"/>
    </taskdef>

    <jacoco:coverage xmlns:jacoco="antlib:org.jacoco.ant">
        <junit fork="yes" failureproperty="true" forkmode="once" maxmemory="1024m">
            <formatter type="xml" />
            <classpath refid="buildClasspath" />

            <test name="${testName}" todir="${testLogs}" if="testcase" />
            <batchtest haltonerror="false" todir="${testLogs}">
                <fileset dir="${SeleniumScripts">
                    <include name="**/*.java" />
                </fileset>
            </batchtest>
        </junit>
    </jacoco:coverage>

我可能错过了,但我不知道你在哪里告诉代理把结果存储在哪里

在我的ant脚本中,我有以下内容:

 <jacoco:coverage enabled="${my.coverage.enabled}" destfile="${test.log.dir}/jacoco.exec">


包装junit任务。尝试定义
destfile=“${jacocococoveragepath}/jacoco.exec”
,看看这是否能解决问题。

嗨,我也正在使用jacoco为验收测试生成代码覆盖率。对于单元测试,我使用的是cobertura,我能够在sonar仪表板上看到代码覆盖率和单元测试报告

现在来获取验收测试的代码covergae。我们使用selenium运行验收测试。我想知道jacoco如何为使用selenium运行的验收测试生成代码覆盖率


根据我的猜测,我认为您应该提到jacoagent.jar的路径,而不是jacocant.jar。我也可能错了。如果您已经找到了一种为在selenium上运行的测试生成代码覆盖率的方法,您可以提供解决方案吗

目标似乎是执行Ant的文件夹。jacoco.exec文件生成得很好,大小约为1MB。该文件可能会生成,但它是在sonar查找它的位置生成的吗?您告诉Sonar在${jacocoCoveragePath}中查找jacoco.exec文件(请参阅属性Sonar.jacoco.itReportPath)。这就是文件的真正位置吗?这是正确的,因为我已经验证了我的cobertura.xml文件也是在那里生成的,并且我也从那个位置获取它。科伯图拉报告导入良好。我用声纳输出更新了我的问题。查看声纳输出,jacoco.exec文件成功读入声纳
[sonar:sonar] 08:36:15.619 INFO  p.PhasesTimeProfiler - Sensor JaCoCoItSensor...
[sonar:sonar] 08:36:15.623 INFO  o.s.p.j.JaCoCoPlugin - Analysing [file path omitted]\jacoco.exec
[sonar:sonar] 08:36:17.272 INFO  p.PhasesTimeProfiler - Sensor JaCoCoItSensor done:     1653 ms
 <jacoco:coverage enabled="${my.coverage.enabled}" destfile="${test.log.dir}/jacoco.exec">