如何获得karma javascript junit xml报告到声纳

Kev*_*ell 6 junit sonar-runner karma-runner sonarqube karma-jasmine

是否有业力记者可用于生成results.xml与声纳Generic Test Coverage插件兼容的文件?或者替换为junit文件的解析器karma-junit-reporter,它将由通用插件输出并使用?

我正在使用SonarQube 5.3和Karma/Jasmine

我想将来自业力的junit报告导入SonarQube,但无法轻易找到方法.类似于https://www.npmjs.com/package/mocha-sonar-generic-test-coverage for karma

仅供我参考 karma-junit-sonarqube-reporter(https://www.npmjs.com/package/karma-junit-sonarqube-reporter),但似乎期望测试的名称与文件的路径相匹配,这对我来说过于严格. karma-sonarqube-unit-reporter似乎未完成 grunt-karma-sonar似乎依赖于jstestdriver哪个被弃用

Kev*_*ell 5

我设法通过以下方式实现了这一目标.

将javascript junit报告转换为声纳

  1. 找不到sonar-karma-test-report-plugin-1.0.0.4.jar通过更新中心提供的内容
  2. 将jar文件放入 /usr/local/Cellar/sonar/5.3/libexec/extensions/plugins并重启声纳
  3. 告诉业力省略浏览器的名称

    junitReporter: {
           useBrowserName: false 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 让Karma通过正常的karma-junit-reporter创建一个junit xml文件并让它调用该文件TESTS-xunit.xml(我调用了文件test-results.xml,声纳不会检测到它的WTF)

  5. 在sonar-project.properties文件集中sonar.javascript.karmajstestdriver.reportsPath=reports/js/unit-components/results/

  6. 呼叫 sonar-runner

声纳需要测试文件的路径才能处理报告.Jasmine没有向记者提供此信息.我的理解是声纳插件迭代xml文件,并找到每个测试具有测试名称(即my cool tests)的类名,并进行字符串替换以将其更改为文件的位置