为什么Sonar没有在Jenkins上读取我的JUnit XML结果?

Arg*_*yle 4 junit android jenkins sonarqube

我试图从我们的持续集成Jenkins构建到我们的Android项目的Sonar中获得JUnit测试报告.我是成功的头发,我无法弄清楚最后一步.

构建是使用Ant完成的.

我正在使用Jenkins启动的模拟器并使用缺少的android XML JUnit测试运行运行测试.测试运行,我使用测试运行com.my.package.thing-TEST.xml的作者提供的指令成功地将JUnit XML结果文件(等等)从设备中拉到指定的目录中.

Sonar分析使用The Jenkins Sonar插件提供的"Invoke Standalone Sonar Analysis"构建步骤完成.我已经设置了项目属性,以便所有静态源分析等都成功地被推送到Sonar服务器.

我的问题是它不会推动JUnit测试结果以及所有其他分析.我遵循了Sonar关于重复使用测试报告的说明.值得注意的是,我已经设置了这些属性:

sonar.dynamicAnalysis=reuseReports
sonar.surefire.reportsPath=android/REDACTED-test/junit-results
Run Code Online (Sandbox Code Playgroud)

我可以在构建输出中看到它应该解析结果:

17:52:28.013 INFO        org.sonar.INFO - Execute Findbugs 2.0.0 done: 25446 ms
17:52:28.378 INFO  p.PhasesTimeProfiler - Sensor FindbugsSensor done: 25812 ms
17:52:28.378 INFO  p.PhasesTimeProfiler - Sensor SurefireSensor...
17:52:28.379 INFO  s.p.s.SurefireSensor - parsing /jenkins/jobs/REDACTED/workspace/android/REDACTED-test/junit-results
17:52:28.383 INFO  p.PhasesTimeProfiler - Sensor SurefireSensor done: 5 ms
17:52:28.383 INFO  p.PhasesTimeProfiler - Sensor CpdSensor...
17:52:28.384 INFO   o.s.p.cpd.CpdSensor - SonarEngine is used
Run Code Online (Sandbox Code Playgroud)

我已经登录到构建机器以查看所提到的目录,并且我已经确认那里有几个JUnit XML文件,但由于某种原因,Sonar服务器仍然报告零测试.由于SurefireSensor只花了5毫秒,我很确定它没有看到和/或打开结果文件,但我不知道为什么.有人可以帮忙吗?

Ros*_*ack 9

运行器以以下格式生成测试结果名称:

android.package.name-TEST.xml

emma surefire插件只查找名称以.xml开头的.xml文件"TEST-".遗憾的是,缺少的android XML测试运行器仅提供后缀功能,因此您必须通过添加"TEST-"到前端来手动更改每个文件名.