簡體   English   中英

在Visual Studio 2010中使用代碼覆蓋率運行NUnit測試

[英]Running NUnit tests in Visual Studio 2010 with code coverage

我們最近從Visual Studio 2008升級到Visual Studio 2010.作為代碼庫的一部分,我們有一組非常大的NUnit測試。 我們希望能夠在Visual Studio中運行這些單元測試,但啟用了代碼覆蓋 我們有ReSharper,因此可以在Visual Studio中運行測試,但它不允許代碼覆蓋工具執行其操作並生成coverage統計信息。

有沒有辦法讓這項工作,或者我們是否必須將測試轉換為MSTest?


編輯:我們已經嘗試過建議的工具:

  • TestDriven.Net
    這在Visual Studio中運行NUnit測試很好,甚至可以使用代碼覆蓋,但它也包括測試作為覆蓋程序集的一部分。 似乎沒有辦法排除測試,但包括正在測試的程序集(我們的測試與他們測試的代碼在不同的程序集中)。 我們也不想花費額外的2000英鎊花費我們來為整個團隊獲得TestDriven.net。

  • 加利奧
    這沒用。 為了獲得覆蓋輸出,測試需要在Visual Studio測試運行器中運行。 Gallio不為NUnit提供此支持。

還有什么想法? 我們確實找到了幾個開源嘗試來讓這種類型的東西工作,但它們已經陳舊並且長時間沒有被觸及(因此不支持VS2010)。

gallio自動化框架是一個開源項目,應該允許您完成此任務。 該網站位於http://www.gallio.org/ 。在上一版本中有最初的VS2010支持,在夜間版本中有更多的工作。

這里有更多相關信息: http//weblogs.asp.net/astopford/archive/2010/04/13/gallio-and-vs2010.aspx

但是,如果你有錢花在這上面,請看看http://TestDriven.Net

Jetbrains似乎正在使用名為“dotCover”的新產品解決這個問題。 它還處於初期階段,但考慮到他們的記錄,它應該很快就會成為主要參與者。

直到它發布,你可以“測試” 這里的夜間版本。

您可以在運行NUnit測試時使VS 2010代碼覆蓋功能正常工作,但這是配置工作的一部分:

設置運行nunit-console-x86.exe的通用測試,如下所示:

VS2010代碼覆蓋率是否支持nUnit? (xUnit的簡化描述)

http://msdn.microsoft.com/en-us/library/ms182624 (v=vs.100) .aspx (一般說明)

確保:

  • 你已經激活了“儀器到位”。 信任VS的部署將無法正常工作
  • 你運行nunit-console-x86.exe。 64位版本無法使用。
  • 所有需要代碼覆蓋率結果的庫都構建到一個文件夾中。 復制它們(例如通過構建事件)將不起作用。 (對於高級:您可以在其構建輸出文件夾之外的其他位置檢測庫,但這非常棘手。)
  • 包含所有庫的文件夾是通用測試的工作目錄,您可以從中啟動NUnit。
  • 您將NUnit的參數作為工作文件夾的相對路徑提供。
  • 另外為NUnit提供了命令行選項/ noshadow

當您將來自不同文件夾的dll復制到單個文件夾中進行測試時,可能會發生奇怪的事情。 例如,我得到了令人反復的結果,即在運行單元測試時幾乎所有的單元測試代碼都被覆蓋 太可惜了,該代碼覆蓋率沒有 找到單元測試測試圖書館!

好吧,在設置所有構建輸出目錄后,我遇到了最奇怪的問題:從該文件夾NUnit不運行。 我讓它從2個不同的位置運行,但在這里它“nunit-console-runner.dll not found”。

我只是通過以下方式在另一個位置檢測測試庫:

  • 測試>編輯設置>本地
  • 數據和診斷>代碼覆蓋
  • 停用原始位置並從測試文件夾中添加庫

今天它立即起作用了,但是前幾天我試圖將這些位置正確地運行了大約一個小時。 我仍然不知道那天我搞砸了什么。

阿德里安,

看看TestMatrix - 它將運行您的單元測試,代碼覆蓋和單元測試性能分析 - 所有這些都本機集成到Visual Studio中。

我在CodePlex上找到了Code Coverage Runner項目,它通過適配器連接VS測試和NUnit API。 在撰寫本文時,該項目自2008年3月以來尚未更新,但它可能適合您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM