SonarQube Javascript:如何使用 mocha 显示单元测试仪表板

SonarQube Javascript: how to show unit tests dashboard with mocha

我正在学习如何将 sonarqubeNodeJS 项目集成,到目前为止它运行良好,但仪表板缺少 unit tests 度量。用于测试项目的 运行ner 是 mocha,我一直在使用 nyc 生成一个 lcov 文件,因此覆盖率测量显示在声纳中,但是我即使我尝试了很多 mocha 记者,我也无法使单元测试测量显示,现在我正在尝试 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

我也尝试删除 reportsPath 参数中的 xml 文件,因为我已经阅读过它必须指向 xml 文件所在的目录,但仍然无济于事。

感谢任何有关如何在仪表板中显示单元测试编号的帮助

sonar.javascript.jstestdriver.reportsPath 已被弃用很长时间了。您应该使用通用报告导入:https://docs.sonarqube.org/display/SONAR/Generic+Test+Data

要转换为通用格式,请使用类似这样的东西 https://www.npmjs.com/package/mocha-sonarqube-reporter