我有一個設置,Visual Studio 2010運行測試覆蓋率分析,它的輸出在集成構建過程中被NDepend吸收。是否可以從NDepend分析中排除整個名稱空間?
一些程序集包含需要被NDepend忽略的生成代碼。
有沒有辦法做到這一點?最好是整個名字空間。
我有一個設置,Visual Studio 2010運行測試覆蓋率分析,它的輸出在集成構建過程中被NDepend吸收。是否可以從NDepend分析中排除整個名稱空間?
一些程序集包含需要被NDepend忽略的生成代碼。
有沒有辦法做到這一點?最好是整個名字空間。
Code Query and Rule over LINQ (CQLinq)確實提供了一個設施,以忽略生成的代碼。
有一個方便的預定義域名爲JustMyCode類型ICodeBaseView。
域JustMyCode代表CQLinq的一個工具,用於從CQLinq查詢結果中消除生成的代碼元素。例如下面的查詢將只匹配不是由工具生成(如UI設計者)大的方法:
from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m
該組產生的代碼元素通過與CQLinq關鍵字notmycode前綴CQLinq查詢定義 。例如下面的查詢匹配的源文件的名稱以「了.Designer.cs」結束定義的方法:
notmycode from m in Methods where
m.SourceFileDeclAvailable &&
m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m
的CQLinq查詢亞軍執行所有notmycode查詢依靠JustMyCode前查詢,因此域名JustMyCode被定義爲全部。顯然,如果notmycode查詢依賴於JustMyCode域,CQLinq編譯器會發出錯誤。
有4個默認值notmycode查詢,很容易適應您的需要。注意到沒有默認notmycode爲命名空間查詢,但你可以創建自己的一個(或多個):
在「重構方法的快速總結」中找到了這一點R」
// Here are some ways to avoid taking account of generated methods.
!(NameIs "InitializeComponent()" OR
// NDepend.CQL.GeneratedAttribute is defined in
// the redistributable assembly $NDependInstallDir$\Lib\NDepend.CQL.dll
// You can define your own attribute to mark "Generated".
HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute")
但是,這並沒有解決需要修改每一個CQL查詢,以確保他們都忽略生成的代碼。
Patrick,你能否詳細說明這一點並描述如何修改用於生成項目指標的所有CQL查詢?我可以看到嵌入到項目文件中的編碼查詢,但在我的生活中,我無法找到我要在UI中修改它們的位置! – rbellamy
只需啓動VisualNDepend。exe文件,對NDepend項目進行分析或加載NDepend項目的最新分析結果,然後查看面板「CQL Query Explorer」,這是瀏覽查詢和規則並編輯它們的地方。 –
我指的是一次更改所有查詢的能力。用例 - 使用「CQL查詢編輯」選項中提供的「複製到剪貼板默認CQL查詢」複製所有查詢。然後,使用選擇的正則表達式工具,修改所有查詢以忽略特定的名稱空間,或者遵循NDepend [Generated]屬性或您希望對CQL語句的標準進行其他全局更改。現在,如何用這些更新/修改的查詢輕鬆替換NDepend項目的默認查詢? – rbellamy