2011-05-05 60 views
9

我試圖建立一種便於Visual Studio解決方案:從NuGet安裝NUnit後,如何強制TestDriven.Net使用NuGet引用的NUnit DLL?

我想:

  • 要將所有引用和依賴 我的解決方案的 目錄結構

  • 使用的能力的根目錄下,「測試用 NUnit的」,命令當我在TestDriven.NET 提供的項目上右擊 時。

我不想:

  • 要使用NUnit的版本 TestDriven.NET安裝本身

我想:

  • 的,「測試隨着NUnit的」,命令來使用 的NUnit的版本的NuGet下我 解決方案的子目錄安裝我

更多細節,我已經嘗試過:

當您安裝TestDriven.NET會將自己版本的NUnit像一個路徑:

  • \程序文件(x86)\測試Driven.NET 3 \ NUnit的\ 2.5

當您使用的NuGet安裝NUnit的最新版本,它會將NUnit的像一個路徑:

  • Solution_root \ \包NUnit.2.5.10.11092

NuGet會自動爲您添加對\ packages \ NUnit.2.5.10.11092 \ lib \ nunit.framework.dll的引用。如果你碰巧想用TD.Net菜單輕鬆地執行NUnit測試,那麼這個引用是毫無價值的,因爲TD.Net實際上並沒有使用NuGet剛剛爲你設置的NUnit dll。

  • 如何強制TestDriven.Net的使用菜單中引用的DLL的NUnit我的解決方案的路徑,而不是它在\程序文件(x86)\ TestDriven.NET 3安裝\ NUnit的\ NUnit的DLL?

OR

  • 如果這是不可能的,有一個簡單的快捷鍵/菜單命令來執行與下我的解決方案文件夾,而無需使用TestDriven.Net NUnit的的SpecFlow測試?

我爲什麼要這麼做?

我用NuGet安裝了NUnit,這樣我就可以將測試框架庫保存在我的解決方案和源代碼控制之內。我需要能夠在我的解決方案路徑(Solution_root \ packages \ NUnit.2.5.10.11092)下引用像nunit.framework.dll這樣的東西,而不是從(\ Program Files(x86)\ TestDriven.NET 3 \ NUnit \ 2.5中引用它) 。

我已經嘗試過的建議在這裏:

我也不想在手動複製和取代的TD.Net安裝爲不允許源控制下的解決方案,相關文件和隔離NUnit的文件。

+0

如果這是不可能的,任何人都可以推薦一種方法:安裝xUnit。net,NUnit或MSTest通過NuGet,SpecFlow使用該解決方案中安裝的NuGet包,並且通過簡單的右鍵單擊或接近自動的方式告訴Visual Studio「立即運行所有這些測試」? – Kerry 2011-05-22 16:38:04

+0

這不是對這個確切問題的答案,但這裏是我現在使用的解決方法: 右鍵單擊包含規格/測試的類庫並選擇屬性。選擇生成事件選項卡。 在生成後事件命令行補充一點: $(SolutionDir)\包\ NUnit.2.5.10.11092 \工具\ nunit.exe $(TARGETPATH)/運行 替換\ NUnit.2.5.10.11092 \與任何確切版本NuGet安裝在你的sln下。 運行後構建事件:成功構建。 每次構建好之後,NUnit GUI將啓動並在dll中運行測試。 – Kerry 2011-06-12 05:15:02

回答

3

不知道這正是你追求的,但這裏有雲:

在Visual Studio中(我使用2010):

  1. 轉到驅動工具 - >選項 - >測試 - >測試運行程序
  2. 本節列出了TD.NET附帶的所有預配置測試運行程序。
  3. 運行Regedit。
  4. 轉到:* HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MutantDesign \ TestDriven.NET \ TestRunners * 這將在32位操作系統下有所不同。
  5. 添加一個新的密鑰NUnit 2.5.X(只需複製另一個密鑰並更改所需的任何設置)。

  6. 重新啓動Visual Studio。

  7. 在步驟#1的菜單下,您會發現新的測試跑步者。
  8. 點擊它並保存。

從現在開始,您的測試將與您配置的測試運行器一起運行。

+0

謝謝。我認爲你的方法對於一個特定的VS解決方案(我還沒有嘗試過)可以很好地工作,但是每次都需要爲每個新VS項目進行配置(將註冊表中的鍵/路徑指向NUnit特定位於每個VS解決方案下的NuGet「packages」目錄下的文件)。我正在尋找一種方法來爲任何/所有VS項目自動連線。 – Kerry 2011-08-28 17:11:46

+0

註冊表中的設置是每臺計算機的全局設置。 VS從那裏讀取它並讓你選擇這個選項。 – 2011-08-28 18:31:20