我面临一些 sonarcloud 警告的问题,这些警告在最近的将来不会修复(现在应该被禁用)。
在 CI 上构建期间,sonarcloud 会发出警告。没有任何本地分析器。有没有办法在项目、文件、类和/或方法级别的源代码中抑制某些特定警告?
官方文档没有太大帮助,至少我没有找到解决方案。
sonarcloud 是否尊重一些
#pragma warning disable S3881
或其他基于属性的方法或一些全局设置。
我面临一些 sonarcloud 警告的问题,这些警告在最近的将来不会修复(现在应该被禁用)。
在 CI 上构建期间,sonarcloud 会发出警告。没有任何本地分析器。有没有办法在项目、文件、类和/或方法级别的源代码中抑制某些特定警告?
官方文档没有太大帮助,至少我没有找到解决方案。
sonarcloud 是否尊重一些
#pragma warning disable S3881
或其他基于属性的方法或一些全局设置。
是的,SonarCloud 尊重以下#pragma
语法:
#pragma warning disable S3881
// The statement that fails validation
#pragma warning restore S3881
您替换S3881
为对您而言失败的号码。
有多种方法可以做到这一点(至少在java中,但我认为它可能对你有所帮助)
注释方式(java 版本) - 在 Java 中,您可以忽略扫描仪中的整行,并在它们后面加上//NOSONAR <optional reason>
- 我假设这也适用于 C#(但请验证,如果合适并让我们知道)
Annoation 方式(java 版本) - 但看起来类似于 #pragma 警告禁用
@SuppressWarnings("squid:S2068")
就是这样,我们如何在 Java 中禁用代码块的规则 - 所以我认为你的方法#pragma warning disable S3881
是正确的方向,但它应该是#pragma warning disable csharpsquid:S3881
。
如前所述,我不是 ac# 开发人员,也不是很熟悉该语言,但我希望 java 方式和 gui 方式能够帮助您朝着正确的方向前进。
语法有效,#pragma
但我觉得它很难看。我更喜欢添加该属性,我通过实验发现以下一个有效:
[SuppressMessage("SonarLint", "S125", Justification = "Ignored intentionally as a demo")]
public void When_X_Expect_Y()
{
//string x = "trigger 'S125 - commented out code' issue in SonarLint";
}
的第一个论点SuppressMessage
似乎无关紧要。第二个是关键和有效的。