微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SonarCloud要求对伊斯坦布尔忽略的文件进行代码覆盖

如何解决SonarCloud要求对伊斯坦布尔忽略的文件进行代码覆盖

我有一个JavaScript应用,其中我们使用Istanbul生成代码覆盖率报告,并使用SonarCloud进行静态分析。

有两种方法可以将代码排除在伊斯坦布尔之外。首先是设置排除路径。在jest.config.js中,我们要排除模式:

"coveragePathIgnorePatterns": [
  "source/legacy"
]

第二种方法是在诸如/* istanbul ignore file */之类的源文件中使用Istanbul忽略注释。无论哪种情况,被忽略的文件都不会成为生成的报告文件的一部分。

在Sonar配置中,我们将其设置为使用具有lcov.info属性生成sonar.javascript.lcov.reportPaths报告文件。但是,我们还需要将sonar.coverage.exclusions设置为排除source/legacy之类的模式,因为它没有将lcov.info报告视为事实的来源。这是可以接受的,但是重复配置,这是不幸的。真正的问题是,我找不到任何方法使Sonar处理/* istanbul ignore file */排除的文件

是否有某种方法可以使Sonar将lcov.info文件视为其真实来源,从而使任何未包含在文件中的文件都被排除在覆盖范围之外?

或者,伊斯坦布尔有一种方法可以让我列出被忽略的文件,但可以说它们被忽略了吗?也许那样,Sonar会看到它们被忽略了。

解决方法

对于那些正在寻找解决方案的人,不幸的是,您需要明确地告诉 sonarqube 忽略此文件。不是一个理想的解决方案,但我最终得到的。

文档:https://docs.sonarqube.org/latest/project-administration/narrowing-the-focus/

我将文件名放在 sonar.coverage.exclusions 中。

,

我的组织最终做的是制定一项政策,不使用 istanbul 忽略文件注释,而是忽略文件中的每个函数。也不理想。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。