【发布时间】:2017-07-29 18:30:48
【问题描述】:
我刚刚在 Visual Studio 2017 中创建了一个 netstandard 库,并添加了对 xunit 和 xunit.runner.visualstudio 的引用,但是 VS 测试资源管理器和 Resharper 2017 EAP 3 无法识别任何测试。我见过:Unit testing a .NET Standard 1.6 library 但 project.json 不见了,csproj 又回来了。
我必须做什么才能运行 netstandard 库中包含的单元测试?
库.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>
Test.cs
namespace ClassLibrary2
{
public class Class1
{
[Fact]
public void RescharperShouldRunTest()
{
Assert.True(true);
}
}
}
编辑
感谢答案,我取得了一些进步。
添加
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<!-- ... and ... -->
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
没有影响。只有当我将TargetFramework 更改为netcoreapp1.1 时,VS 才发现测试并可以运行它们。使用netstandard1.6,测试资源管理器保持为空。但我不想要一个 netcore 应用程序。我想要一个 .NET 标准库。
【问题讨论】:
-
很少有人在他们的类库中包含单元测试用例。如果过去将测试用例放在单独的类库中,那么将其更改为 .NET Core 的控制台应用程序也几乎不费吹灰之力。我不明白您为什么强调“我不想要 netcore 应用程序”。这不是讨论的态度。
-
.NET 核心不是 .net 标准。请参阅:msdnshared.blob.core.windows.net/media/2016/09/… netcore 与 Xamarin 不兼容。
标签: c# visual-studio-2017 resharper xunit .net-standard