为什么 SonarQube 排除不适用于 sonar.javascript.file.suffixes 中指定的其他扩展?

Why SonarQube exclusions are not applied to additional extensions specified in sonar.javascript.file.suffixes?

在我的声纳-project.properties 文件中,我有以下设置:

...
sonar.sources=src
sonar.exclusions=src/**/*.test.js
sonar.javascript.file.suffixes=js,jsx

但是我的构建失败并出现以下错误:

ERROR: Caused by: Line 346 of report refers to a file which is not configured as a test file: /tmp/app/src/components/__tests__/filters.test.jsx

我的詹金斯日志准确地报告 58 files ignored because of inclusion/exclusion patterns,使用 find . -name "*.test.js" | wc -l = 58

验证

与 jsx 相同的命令给了我 10 个结果 find . -name "*.test.jsx" | wc -l 意味着 sonar.javascript.file.suffixes=js,jsx 不适用于排除 属性.

如何在源代码中排除扩展名为 .js 和 .jsx 的文件?

您部分正确。要排除文件,您必须设置 sonar.exclusions。你做到了,但只针对 js 个文件,所以你的问题的答案是:

...
sonar.sources=src
sonar.exclusions=src/**/*.test.js,src/**/*.test.jsx
sonar.javascript.file.suffixes=js,jsx

sonar.javascript.file.suffixes 通知 JavaScript 分析器哪些文件包含 JavaScript 代码。它不影响sonar.exclusions,所以你必须自己定义所有模式。