2011-12-07 82 views

回答

1

從根本上說,你必須做的是爲每個測試運行一次測試覆蓋工具,爲該測試生成一個覆蓋矢量。如果您有數百個測試,您可以分別收集每個測試的覆蓋範圍。

那麼如果覆蓋向量N覆蓋了一個方法,則測試N引起了覆蓋。

我不知道NCover如果/如何NCover可以交叉引用回對應於該方法源代碼的行範圍。

對於我們C# Test Coverage Tool,所述instrumenter工具產生線號範圍每個覆蓋測試點,並有在每一方法的起始插入的測試點。因此,如果您知道文件中某個方法的行號,您可以在技術上定位入口覆蓋點,從而確定組成該方法的行範圍,從而確定方法中的所有測試覆蓋點。通過這樣的列表,計算測試覆蓋矢量是否已經達到這些點是很簡單的。所以,我們的工具有提供這些數據所需的信息,儘管它沒有很好的記錄。你可以向我們詢問進一步的文件或幫助做到這一點。

+0

Downvoter:這個答案的哪一部分沒有解決OP的問題?它確切地描述了需要什麼,所以OP知道要尋找什麼,並在他無法找到時尋求幫助。嘖。 –

+0

你不只是恨那 –

+0

是的,我喜歡。人們對我提出了很多討厭的解決問題的方案,而這些問題並不是免費的。 (對於我提供的許多解決方案,沒有任何免費的替代方案,所以我認爲仇恨者不希望以任何價格得到答案)。其驚人的...我懷疑他們大多數是提供他們的僱主解決方案的錢,他們似乎並不反對自己。 –

0

dotCover我相信提供那種在UI支持,但我不敢肯定,如果該信息可從構建機器。

OpenCover在正在進行的工作在其叉的一個 - 這是該項目的original aims之一,並帶動OpenCover的設計與測試的單次運行達到這個目的 - 敬請期待......

最後,正如Ira提到的那樣,您可以單獨運行測試並使用NUnit/MSTest(插入測試工具)執行單個測試(使用大多數覆蓋率工具,例如NCoverPartCoverPartCover,OpenCover,...)也將涵蓋任何設置/拆卸操作中發生的任何事情。

+0

您不僅需要測試覆蓋矢量。您需要以某種方式識別方法的主體是否被矢量覆蓋,通過(大概)除了覆蓋數據的視覺檢查以外的手段。 –

+0

艾拉 - 我認爲這就是你所提到的,NCover等人都有一些可視化覆蓋範圍的代碼,可以用來可視化「單一」測試的覆蓋範圍。把這個彙總到一個單一的閱讀器當前是一個讀者的練習。 –

+0

OP正在詢問一個方法,測試覆蓋了它。推測他有一個(完全限定的)方法名稱,並且想要調用一個返回整數測試數字列表的函數。看一組像素不會回答這個問題。 –

相關問題