繁体   English   中英

使用JaCoCo的Sonar IT提供0%的代码覆盖率

[英]Sonar IT using JaCoCo givess 0% code coverage

我正在使用Ant在RHEL6机器上运行Sonar Java代码分析。 对于集成测试分析,我使用声纳的JaCoCo插件。 我的库类路径中有插件。 当我运行我的Selenium测试时,会生成一个“jacoco.exec”文件(10个测试大约1MB)。 然后我在Sonar Ant目标中激活Jacoco插件并将其导入Sonar。 声纳分析日志说Jacoco文件已被分析(大约需要5000毫秒)。 但是,My 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>

我的声纳蚂蚁目标:

...
<property name="sonar.sources" value="${srcCode" />

    <property name="sonar.tests" value="${testCode}" />

    <property name="sonar.binaries" value="${srcAndTestBinaries}" />

    <property name="sonar.dynamicAnalysis" value="reuseReports"/>
    <property name="sonar.surefire.reportsPath" value="${reportsPath}" />
    <property name="sonar.core.codeCoveragePlugin" value="jacoco" />
    <property name="sonar.jacoco.itReportPath" value="${jacocoCoveragePath}/jacoco.exec" />

    <!-- Add the Sonar task -->
    <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
        <classpath path="${antLibPath}/sonar-ant-task-1.4.jar" />
    </taskdef>

    <sonar:sonar key="projectKey" version="1.0" xmlns:sonar="antlib:org.sonar.ant"/>

我试图只包括“相关”的东西。 我不确定“jacoco:coverage”元素是否适用于Selenium测试,但在执行日志中它提到了“代理”,所以我假设代理在这里也用作Java VM上的代理。

我卡住了,请帮忙:)

更新此处是声纳输出的一部分:

[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">

包装junit任务。 尝试定义destfile="${jacocoCoveragePath}/jacoco.exec" ,看看是否修复了它。

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

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

根据我的猜测,我认为你应该提到jacocoagent.jar而不是jacocoant.jar的路径。 我也错了。 如果您找到了为在selenium上运行的测试生成代码覆盖率的方法,那么您可以提供解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM