如何针对文件子集运行代码分析



目前我正在从事/没有代码分析打开的项目中。

我想做的只是在检查之前与我使用/触摸的文件一起运行CA,但有一些限制:

  • 我没有选择该项目的选择。即使我做了...
  • 该项目很大;CA需要一个年龄才能跑步,警告很多。从列表中挑选我触摸的文件将是在干草堆中的针头。

有人有任何想法吗?

一个想法是通过工具ndepender运行代码规则(免责声明:我是工具的开发人员之一)。

我想做的只是对我使用/touch

的文件运行CA

关于这一点,Ndepend,让我们通过LINQ查询编写代码规则,而提出的一个设施是查询当前代码版本和代码的先前版本之间的代码差异(基线)。因此,用户可以编写一个代码规则,该规则仅关注现在和基线之间已更改的代码规则。

提出了大约200个默认代码规则,例如避免使复杂的方法更加复杂。如果我们查看此规则的LINQ代码,我们可以看到,首先,它仅过滤CodeWaschange的方法,然后检测到足够复杂的方法,并且变得更加复杂。方法复杂性是通过流行的代码循环复杂性来定义的。

// <Name>Avoid making complex methods even more complex (Source CC)</Name>
warnif count > 0 
from m in JustMyCode.Methods where
  m.CodeWasChanged() // <-----
let oldCC = m.OlderVersion().CyclomaticComplexity
where oldCC > 6 && m.CyclomaticComplexity > oldCC 
select new { m,
    oldCC ,
    newCC = m.CyclomaticComplexity ,
    oldLoc = m.OlderVersion().NbLinesOfCode,
    newLoc = m.NbLinesOfCode,
}

自基线以来,所有默认规则或自定义规则都可以调整为已重构或已引入的代码的代码。代码规则组代码质量回归 api破坏更改包含这些改编的代码规则。

关于点 ca需要一个年龄才能运行,并且警告很多。您现在可以尝试Ndepend,并且看到它不会让您等待。分析您的大型代码库并执行200个默认规则(可以轻松自定义,因为它们只是C#LINQ查询)。

最新更新