【问题标题】:Why isn't Sonar reading my JUnit XML results on Jenkins?为什么 Sonar 没有在 Jenkins 上读取我的 JUnit XML 结果?
【发布时间】:2012-07-10 07:42:23
【问题描述】:

我正在尝试从我们的持续集成中获取 JUnit 测试报告 Jenkins 为我们的 Android 项目构建到 Sonar 中。我离成功只有一步之遥,我想不出最后一步。

使用 Ant 完成构建。

我正在使用Jenkins-started emulator 并使用the missing android XML JUnit test runner 运行测试。测试运行,我使用测试运行器作者提供的说明成功地将 JUnit XML 结果文件(com.my.package.thing-TEST.xml 等)从设备中提取到指定目录中。

声纳分析是使用The Jenkins Sonar plugin 提供的“调用独立声纳分析”构建步骤完成的。我已经设置好项目属性,以便所有静态源分析等都成功推送到 Sonar 服务器。

我的问题是它不会将 JUnit 测试结果与所有其他分析一起推送。我关注了Sonar instructions about reusing test reports。值得注意的是,我设置了以下属性:

sonar.dynamicAnalysis=reuseReports
sonar.surefire.reportsPath=android/REDACTED-test/junit-results

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

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

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

【问题讨论】:

  • 您好,您能具体说明一下您在 Sonar 中看不到的“测试报告”吗?
  • 我只知道一种测试,JUnit 测试。尽管我有几个包含结果的 XML 文件,Sonar 说已经运行了零测试。

标签: android junit jenkins sonarqube


【解决方案1】:

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

android.package.name-TEST.xml

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-07-02
  • 2012-10-01
  • 2015-05-04
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
相关资源
最近更新 更多