2009-09-11 47 views
10

在Visual Studio中,我只創建了一個簡單的單元測試來測試我寫的一個方法。我想檢查代碼覆蓋範圍,但代碼覆蓋率窗口只聲明「代碼覆蓋率未啓用此測試運行」。爲什麼?注:爲什麼Visual Studio在啓用時會說「代碼覆蓋未啓用此測試運行」?

  1. 我已經按照this page上的說明操作,即測試配置確實在代碼覆蓋選項頁面上檢查了相關的組件。
  2. 我點擊了「運行測試」,而不是「調試測試」,一些消息來源聲稱會導致這種情況。
  3. 我試着用當前的編譯配置設置爲「Debug」或「Release」運行測試;既不可行。
  4. 我也遵循this page(通過選擇Test => Select Active Test Run Configuration重新選擇testrunco​​nfig文件)的建議,無濟於事。

但是,每次運行相關測試時,仍然會收到消息「代碼覆蓋未啓用此測試運行」。如何一次性啓用代碼覆蓋?

+1

請從主題標題中刪除[Visual Studio],標記用於標識問題,而不是標題。標題應該是問題的總結,而不是其背景。 – Esko 2009-10-06 14:34:49

+0

謝謝。 (somemorechars) – Esko 2009-10-06 14:41:56

+1

我的理解是VS有兩個版本:專業版和企業版,並且你沒有在專業版中獲得代碼覆蓋。你有企業版嗎? – 2009-10-06 17:20:26

回答

3

我曾經與MSTest在lot的地區(包括代碼覆蓋率) - 坦率地說,它*並沒有完全消除它的方式讓生活變得容易 - 尤其是與額外的testrunco​​nfig等重複很多事情已經在csproj中了。

無論如何;比我發現TestDriven.NET有這種內置的(只要你有Visual Studio中的正確的版本,包括MSTest的和覆蓋面):

alt text http://www.mutantdesign.co.uk/weblog/images/DrivingMSTestandTeamCoverageusingTes.NET_F424/MSTestAndTeamCoverage_thumb1.gif

這將使用現有的測試框架(包括MSTest的) ,但它會跳過所有常用的環節,以啓用測試覆蓋率,而不需要混淆配置。它甚至適用於源代碼着色(紅色/藍色未經測試/測試等)。便利。

* =工具本身,而GUI集成

+0

很好地完成了這項工作。謝謝。 – tim 2010-12-09 10:54:37

2

看看這個網頁,看看是否有幫助: Tips on Using Code Coverage in Visual Studio 2005

他有一個問題,甚至設置你所提到的配置文件後和問題同位於GAC組件相關。

+0

什麼是GAC? - – Timwi 2009-10-07 14:09:26

+1

它代表全局程序集緩存。 我不知道你的項目是否使用它,但這只是一種可能性。 您可以嘗試強制彙編所有內容,擦除當前的DLL和對象並重新構建,並啓用分析。 – Asrail 2009-10-08 18:54:49

0

如果這是針對C++項目,請確保已啓用分析。調出你的項目屬性 - >鏈接 - >高級。查找配置文件並將其設置爲啓用配置文件信息(/ PROFILE)。

0

一定要從測試視圖或測試列表窗口運行測試...而不是從測試結果窗口運行測試。在測試結果窗口內重新運行測試並不總是符合您的測試運行配置設置。

0

在我而言,當我質疑這個問題,我不得不下Test->Select Active Test Run Configuration菜單「沒有可用的測試運行配置」。
我刪除/添加了.testrunconfig文件,代碼覆蓋率又回來了。
(VS2005團隊版)

相關問題