运行包含在.NET Standard 1.6库中的xunit测试

Sve*_*übe 6 c# resharper xunit visual-studio-2017 .net-standard

我刚刚在Visual Studio 2017中创建了一个netstandard库,并添加了对xunit和的引用xunit.runner.visualstudio,但VS Test Explorer和Resharper 2017 EAP 3无法识别任何测试.我见过: 单元测试一个.NET Standard 1.6库但是project.json已经不见了,csproj又回来了.

我需要做什么才能运行netstandard库中包含的单元测试?

Library.csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard1.6</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

test.cs中

namespace ClassLibrary2
{
    public class Class1
    {
        [Fact]
        public void RescharperShouldRunTest()
        {
            Assert.True(true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑

感谢答案,我取得了一些进展.

添加

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />  
<!-- ... and ...  --> 
<ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

确实没有影响.只有当我更改TargetFrameworknetcoreapp1.1VS才发现测试并且可以运行它们.随着netstandard1.6测试浏览器仍然是空的.但我不想要一个netcore应用程序.我想要一个.NET标准库.

小智 1

如果您运行 dotnet new xunit,您将看到包含的附加参考。

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
Run Code Online (Sandbox Code Playgroud)

我在当前的 IDE 工具中发现了相同的结果。但是,您可以使用命令行在命令行上运行测试

dotnet test -l "trx"
Run Code Online (Sandbox Code Playgroud)

我试图以 netstandard1.5;net452 为目标,但仅运行 net452 测试,而不运行 netstandard1.5 测试。