VS 2017没有发现.NET Core上的测试怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (182)

任何人都可以帮助我使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>

如果我尝试从目标.NET Framework(完整,而不是.NET Core)的模板中创建一个MSTest单元测试项目,它就可以工作。

有任何想法吗?

提问于
用户回答回答于

最后,通过更改我的系统环境解决了问题PATH。从变量C:\Program Files\dotnet\C:\Progra~1\dotnet\

用户回答回答于

我认为我经历了同样的行为。尝试构建您的解决方案,以便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>

我玩了一下,看起来VS无法找到测试<OutputType>Exe</OutputType>

尝试向csproj添加以下内容,因为我在某些情况下看到VS添加了。

<ItemGroup>
  <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>

扫码关注云+社区