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

相关问题