VS 2017没有发现.NET Core上的测试

val*_*orl 19 unit-testing test-explorer .net-core visual-studio-2017

谁能帮助我让VS2017与.NET Core测试项目一起工作?

我尝试从VS 2017模板为.NET Core创建MSTest和xUnit单元测试项目.它们都不适用于测试资源管理器(未发现),但从dotnet test项目文件夹运行可以正常工作.

重现步骤:

  1. 在VS 2017中创建新项目
  2. 选择Unit Test Project (.NET Core)xUnit Test Project (.NET Core)模板
  3. 实施一些任意的单元测试
  4. 构建解决方案
  5. 转到文本资源管理器并尝试 Run All

此时,"输出"窗口应该告诉您已发现0测试

.csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

如果我尝试从面向.NET Framework的模板(完整版,而不是.NET Core)创建MSTest单元测试项目,那么它可以工作.

有任何想法吗?

val*_*orl 14

最后,通过改变我的系统环境解决了这个问题PATH.从变量C:\Program Files\dotnet\C:\Progra~1\dotnet\,因为回答无法获得的xUnit测试与Visual Studio 2017年RC工作

感谢Alexey在评论中提出建议:)


And*_*nov 6

我想我经历过同样的行为.尝试构建您的解决方案,以便VS可以发现您的测试.否则请分享您测试csproj文件以确保您引用正确的包.我的是:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

更新:我玩了一下,看起来VS没有找到测试<OutputType>Exe</OutputType>

更新2:尝试在csproj中添加以下内容,因为我看到VS在某些情况下添加了.

<ItemGroup>
  <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)


DGr*_*een 5

我遇到了这个问题,VS 2017 没有发现 .NET Core 上的 MSTest 单元测试。

测试输出仅报告它发现了零测试。

dotnet test MyProject.csproj -t命令提示符下运行时,它提示我没有安装正确的 .NET Core 运行时来匹配项目的 RuntimeFrameworkVersion。

安装最新的 VS 2017 更新和 .NET Core 运行时解决了该问题。