use*_*582 6 ant selenium jacoco sonarqube
我正在使用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>
Run Code Online (Sandbox Code Playgroud)
我的声纳蚂蚁目标:
...
<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"/>
Run Code Online (Sandbox Code Playgroud)
我试图只包括"相关"的东西.我不确定"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
Run Code Online (Sandbox Code Playgroud)
我可能错过了,但我不明白你在哪里告诉代理在哪里存储结果。
在我的蚂蚁脚本中,我有这个:
<jacoco:coverage enabled="${my.coverage.enabled}" destfile="${test.log.dir}/jacoco.exec">
Run Code Online (Sandbox Code Playgroud)
包装 junit 任务。尝试定义destfile="${jacocoCoveragePath}/jacoco.exec"并看看是否可以解决问题。
| 归档时间: |
|
| 查看次数: |
3175 次 |
| 最近记录: |