我正在学习如何将sonarqube
与NodeJS
项目进行整合,到目前为止它一直运行良好但仪表板缺少unit tests
指标。用于测试项目的跑步者是mocha
,并且我一直在使用nyc
生成lcov
文件,因此覆盖率测量值会显示在声纳中,但我不能即使我尝试过很多摩卡记者,也要显示单位测试指标,现在我正在尝试mocha-junit-reporter
来创建XML
文件。
要在coverage/
中生成xml,这是我运行的命令:
MOCHA_FILE=./coverage/file.xml npx mocha test/**/*.js --reporter mocha-junit-reporter
Jenkins
正在使用扫描仪,它具有以下属性:
sonar.projectKey=node-user-data
sonar.projectName="User Data"
sonar.projectVersion=1.0
sonar.baseProjectDir=${workspace}
sonar.sources=${workspace}/classes
sonar.tests=${workspace}/test
sonar.language=js
sonar.sourceEncoding=UTF-8
sonar.exclusions=node_modules/**
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.javascript.jstestdriver.reportsPath=${workspace}/coverage/file.xml
我还尝试删除xml
参数中的reportsPath
文件,因为我已经知道它必须指向xml
文件但仍无效的目录。
有关如何在仪表板中显示单元测试编号的任何帮助表示赞赏
答案 0 :(得分:2)
sonar.javascript.jstestdriver.reportsPath
已被弃用。您应该使用通用报告导入:https://docs.sonarqube.org/display/SONAR/Generic+Test+Data
要转换为通用格式,请使用类似https://www.npmjs.com/package/mocha-sonarqube-reporter
的内容