我試圖建立一種便於Visual Studio解決方案:從NuGet安裝NUnit後,如何強制TestDriven.Net使用NuGet引用的NUnit DLL?
BDD
使用SpecFlowhttp://www.specflow.org/
由於這裏TekPub描述:http://tekpub.com/view/concepts/5
我想:
要將所有引用和依賴 我的解決方案的 目錄結構
使用的能力的根目錄下,「測試用 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中引用它) 。
我已經嘗試過的建議在這裏:
,它似乎仍然推出TestDriven.Net的版本NUnit的,而不是一個的NuGet安裝我的。
我也不想在手動複製和取代的TD.Net安裝爲不允許源控制下的解決方案,相關文件和隔離NUnit的文件。
如果這是不可能的,任何人都可以推薦一種方法:安裝xUnit。net,NUnit或MSTest通過NuGet,SpecFlow使用該解決方案中安裝的NuGet包,並且通過簡單的右鍵單擊或接近自動的方式告訴Visual Studio「立即運行所有這些測試」? – Kerry 2011-05-22 16:38:04
這不是對這個確切問題的答案,但這裏是我現在使用的解決方法: 右鍵單擊包含規格/測試的類庫並選擇屬性。選擇生成事件選項卡。 在生成後事件命令行補充一點: $(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