2016-11-27 114 views
6

對於我的生活,我無法使用基於msbuild的新 xunit項目模板在Visual Studio 2017中進行單元測試。使用Visual Studio 2017 RC無法獲得XUnit測試

要求是單元測試既可以在Visual Studio(對於開發人員)內部工作,也可以在自動構建過程的CLI上從dotnet test工作,但是我不能一致地工作。

這是我曾嘗試:

在現有的解決方案,創建一個新的項目,並選擇.NET核心>的xUnit測試項目。從Visual Studio

構建項目,默認的測試顯示,運行成功,現在從PowerShell提示符下運行dotnet test,得到:

> dotnet test 
Test run for D:\...\bin\Debug\netcoreapp1.0\MyProj.dll(.NETCoreApp,Version=v1.0) 
dotnet exec needs a managed .dll or .exe extension. The application specified was 'C:\Program' 
用的csproj文件

或DOTNET測試:

> dotnet test MyProject.csproj 
(same error as above) 

> dotnet test ..\MySolution.sln 
Couldn't find a project to run test from. Ensure a project exists in D:\... 
Or pass the path to the project 

如果我添加xunit.runner.consolexunit.runner.msbuild nuget包,它會停止Visual Studio中的單元測試。

我該如何同時工作?

謝謝!

+0

@tommed,你可以從Visual Studio命令提示符構建/運行它嗎?這個問題可能是因爲VS 2017中的msbuild是本地應用程序,這意味着有特殊的env變量用於確定msbuild的位置,使用的.targets和類庫。 –

+0

@MichaelBraude謝謝你。我也在_Developer命令提示符和_MSBuild命令提示符下嘗試了相同的錯誤 - 雖然好的想法! – tommed

+0

雖然不是關於.NET Core,但我將其作爲註釋發佈:VS2017 Full NET 4.5框架在這裏,同樣的問題:沒有單元測試被發現。我必須使用Nuget從我的一個項目中卸載並重新安裝'xunit.runner.visualstudio'。然後重建解決方案,並找到測試。希望這可以幫助。 – Sharky

回答

7

您正在點擊的錯誤出現在預覽3中,並在預覽4中修復。它們在執行時並未逃脫命令行,並且由於默認情況下將dotnet.exe安裝到C:\Program Files\dotnet中,它總是失敗。

如果要繼續使用預覽3,最簡單的解決方法是編輯系統PATH環境變量,並用C:\Progra~1\dotnet替換C:\Program Files\dotnet

+0

相關錯誤:https://github.com/dotnet/cli/issues/4832 –

+0

你真了不起 - 謝謝!!!!! – tommed

6

我知道這不是一個很好的答案,但dotnet-test-xunit只支持project.json文件。 VS 2017迫使你切換到csproj文件。

我發現這上的xUnit Twitter的飼料: 如果你想使用@xunit在VS2017 RC W/.NET的核心,去掉dotnet-test-xunit和使用xunit.runner.visualstudio 2.2測試4來代替。

+2

感謝您提供此信息。我也得出結論:'dotnet-test-xunit'打破了VS2017 - 'xunit.runner.visualstudio' nuget軟件包已經安裝,但是沒有辦法運行cli測試。 – tommed

2

在最新的RC.3中,我遇到了未被發現的測試問題,並發現當您運行內置的測試資源管理器時,它在輸出中說Microsoft.DotNet.InternalAbstractions 1.0.0丟失。這也是.NET Core以前版本的問題,解決方案也是一樣的,請從Nuget安裝軟件包。

+0

解決了與使用xUnit進行測試相關的問題。 Visual Studio 2017RC具有令人驚訝的高度錯誤引入項目和它的測試二開箱即用。 – Hekkaryk

相關問題