2017-04-22 147 views
24

我真的很喜歡新的.csproj格式。它比可怕的(有限的)project.json好得多。如何在Visual Studio 2017中運行特定目標框架的單元測試?

但是,有一件事我正試圖解決。我已將我的(多個)測試項目合併爲一個多目標項目。

<TargetFrameworks>netcoreapp1.0;net40;net35</TargetFrameworks> 

但是,似乎沒有要在測試資源管理器在Visual Studio中選擇目標框架任何工具 - 它始終只是運行第一個。我發現了一個解決辦法 - 添加<TargetFramework>元素與特定的框架...

<TargetFramework>net35</TargetFramework> 

但是,有什麼辦法來選擇目標框架,而不是訴諸手動編輯的MSBuild(.csproj)文件?我正在尋找GUI中的某些選項來實現此目的 - 特別是,我不必記住編輯.csproj文件以便在調試測試之前切換框架,或記住在發佈之前必須刪除此行。

回答

0

使用'或'運算符在runsettings文件中使用TargetFrameWorkVersion。

+1

你能舉個例子嗎?另外,我還希望在GUI中有一些東西,因爲我已經有了一個很好的解決方法。 – NightOwl888

+0

看起來像.runsettings文件僅支持Framework35,Framework40,Framework45值,並且不支持.NET Core。 –

3

我知道,問題是關於VS,但我覺得很有用,在<TargetFrameworks>節點針對多種框架dotnet tests命令will run tests for all frameworks時:

> dotnet test 
... 
Test run for [projectPath]\bin\Debug\netcoreapp1.1\XUnitTestProject.dll(.NETCoreApp,Version=v1.1) 
... 
Test run for [projectPath]\bin\Debug\net461\XUnitTestProject.dll(.NETFramework,Version=v4.6.1) 
... 

NCrunch還可以識別多個目標,並自動每個目標運行測試:

enter image description here

+0

對於某些可能有用,對於調試無用 - 特別是如果您有庫並且唯一的調試方法是在Visual Studio中運行測試。 – NightOwl888

+0

@ NightOwl888,看起來不像VS當前有UI。嘗試NCrunch - 單元測試的優秀工具,它支持通過右鍵單擊測試覆蓋的代碼行來進行調試。 –

+0

謝謝,但此產品沒有[開源許可](https://www.ncrunch.net/buy/faq#discount)。我們需要支持任何願意加入我們團隊的人,並且NCrunch的許可證不符合此要求。 – NightOwl888

相關問題