2010-06-29 39 views
2

我還沒有安裝我的NCover 3的許可證,並且我仍然在構建服務器上運行1.5.8。我試圖排除我不希望包含在報告中的完整程序集和特定類,因爲它們會人爲地降低覆蓋率結果。NCover 1.5.8/NCoverExplorer 1.4.0.7手動排除是非常片狀的

在NCoverExplorer中,由於在選項選項卡中有一個覆蓋排除部分,您可以在其中指定完整的命名空間,因此我正在使用這些選項。我已經進入了完全合格的課程,出於某種原因,只有少數人被排除在外,我無法弄清楚原因。例如,當我將System.ComponentModel.Composition添加到列表中時,它永遠不會被排除!

這只是1.5.8中的一個錯誤,我現在必須忍受,因爲它是一個測試版,也不再支持?雖然我確實擁有服務器的新許可證,但我希望能夠在我的個人計算機上在家中進行一些覆蓋。

我發現一個非常棒的article on using a CoverageExcludeAttribute使NCover自動跳過那些標記有該屬性的類/方法。這是最好的選擇嗎?

+0

我想你仍然可以在生成報表之前從樹中手動刪除它們,但是你希望它在分析期間是自動的? – maxwellb 2010-06-29 13:48:52

+0

@maxwellb是的,自動是我正在尋找。雖然在分析過程中會很好,但我可以用腳本進行後期處理。我必須查看TeamCity文檔,看看我是否可以在將coverage.xml呈現到屏幕之前實際修改coverage.xml。 – Dave 2010-06-29 14:19:16

回答

1

您是否嘗試過使用正則表達式包含/排除的組件 -

//ias AuctionSniper([.\w]*?)(?<!Tests) 包括與AuctionSniper開頭,但與試驗如不結束所有組件AuctionSniper.Main.exe 您可以指定以分號分隔的多個模式。
//ias .*vendorsupplied.*;.*tests

這與NCover 3一起使用 - 如果它適用於免費/社區版本,您可以試試它。

+0

我沒有......我的理解是,正則表達式只支持NCover 2.0及以上版本。 1.5.x需要完整的程序集名稱。我沒有使用通配符。 – Dave 2010-06-29 14:12:37

+0

儘管它沒有解決我的問題,但我將它標記爲1.5.8,因爲我厭倦了所有事情,升級到v3.4,並使用此處的信息來安裝。 :) – Dave 2010-07-06 16:18:58

+0

沒有人會從同事程序員對第三方庫的沮喪中得到一個笑聲...但你的評論只是帶來了一個'在那裏'知道我的臉上的微笑。 – Gishu 2010-07-06 19:30:30

0

獲得部分路徑的一種方法是也使用「包含在coverage中的程序集」選項。這讓我忽略了System.ComponentModel.Composition。但是,解析大多數其他類和名稱空間仍然無效。當我排除整個類時,它只會排除方法,但不包含任何包含的類。