C#:使用FxCop sdk的方法的圈复杂度
我需要计算C#方法的圈复杂度,并需要根据FXcop 12.0中的CC值定义规则 我发现像这样的工具提供了计算CC值的功能,但我不知道如何在代码中使用它。基本上,我的要求是通过声纳报告的CC值C#:使用FxCop sdk的方法的圈复杂度,c#,sonarqube,fxcop,code-metrics,cyclomatic-complexity,C#,Sonarqube,Fxcop,Code Metrics,Cyclomatic Complexity,我需要计算C#方法的圈复杂度,并需要根据FXcop 12.0中的CC值定义规则 我发现像这样的工具提供了计算CC值的功能,但我不知道如何在代码中使用它。基本上,我的要求是通过声纳报告的CC值 如果有人为此编写了自定义规则,或者知道如何执行,请提供帮助。在我看来,重要的不是确切的绝对复杂性值,而是您的项目与所有项目平均值之间的相对差异。实际上,您可以通过这种方式发现异常复杂的代码 如果您真的需要FxCop提供的完全相同的复杂性值报告在SonarQube中可用,那么我建议您编写一个SonarQube
如果有人为此编写了自定义规则,或者知道如何执行,请提供帮助。在我看来,重要的不是确切的绝对复杂性值,而是您的项目与所有项目平均值之间的相对差异。实际上,您可以通过这种方式发现异常复杂的代码 如果您真的需要FxCop提供的完全相同的复杂性值报告在SonarQube中可用,那么我建议您编写一个SonarQube插件,将该值存储为一个度量,并依靠FxCop来计算它:不要尝试对FxCop的计算方式进行反向工程
仅供参考,我们有一个长期计划,在SonarQube、Code metrics、FxCop等之间调整度量计算,并使用相同的公式,但这需要时间。也许您可以使用该工具 是的 它包含两个内置代码度量:
// <Name>Complex methods poorly covered by tests</Name>
warnif count > 0
from m in Application.Methods
where m.CyclomaticComplexity > 10 &&
m.PercentageCoverage < 20
select new {
m,
m.CyclomaticComplexity,
m.PercentageCoverage,
m.NbLinesOfCode
}
//复杂的方法很少被测试覆盖
如果计数大于0,则警告
从m开始应用。方法
其中,m.CyclomaticComplexity>10&&
m、 百分覆盖率<20
选择新{
M
m、 环网复合性,
m、 百分比覆盖率,
m、 NbLinesOfCode
}
免责声明:我为独立基金工作