目前我正在開發一個沒有打開代碼分析的項目。你如何針對一部分文件運行代碼分析?
我想要做的只是運行CA針對我/觸摸工作中的文件是什麼之前,我簽入,但有一定的侷限性:
- 我沒有把它的選項在項目上。即使我做了...
- 該項目是巨大的; CA需要運行一段時間,並且警告很多。從列表中挑選出我接觸到的文件將成爲大海撈針。
任何人有什麼想法?
目前我正在開發一個沒有打開代碼分析的項目。你如何針對一部分文件運行代碼分析?
我想要做的只是運行CA針對我/觸摸工作中的文件是什麼之前,我簽入,但有一定的侷限性:
任何人有什麼想法?
一個想法是通過工具NDepend運行代碼規則(免責聲明:我是該工具的開發人員之一)。
我想什麼做的只是運行對我工作的文件CA /觸摸
關於這第一點,NDepend的讓我們通過LINQ查詢編寫代碼的規則,並提出了一個設施是query the code diff之間的當前代碼版本,和以前版本的代碼(基線)。因此,用戶可以編寫一個代碼規則,只關注從現在到基線之間已經改變的代碼規則。
提出了大約200個默認代碼規則,例如Avoid making complex methods even more complex。如果我們看一下這條規則的LINQ代碼,我們可以首先看到,它只過濾CodeWasChanged的方法,然後檢測那些足夠複雜並且變得更復雜的方法。這裏通過流行的代碼度量Cyclomatic Complexity來定義方法複雜度。
// <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,
}
自基線以來,所有默認或自定義規則都可以適用於被重構的代碼或已引入的代碼。代碼規則組Code Quality Regression或API重大更改包含這些自適應的代碼規則,開箱即用。
關於點CA需要一個年齡來運行,並且警告很多。你可以try NDepend now,看到它不會讓你等待。它需要幾秒鐘的時間來分析您的大型代碼庫並執行200條默認規則(因爲它們只是C#LINQ查詢,所以可以輕鬆定製)。