我有一个带有单个 XUnit 测试方法的简单 dotnet 核心类库:
TestLib.csproj: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Test.SDK" Version="15.9.0" /> <PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit.runner.console" Version="2.4.1"> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="xunit.runners" Version="2.0.0" /> </ItemGroup> </Project> BasicTest.cs: using Xunit; namespace TestLib { public class BasicTest { [Fact(DisplayName = "Basic unit test")] [Trait("Category", "unit")] public void TestStringHelper() { var sut = "sut"; var verify = "sut"; Assert.Equal(sut, verify); } } }
如果我在 CLI 上输入项目并键入dotnet build项目构建。如果我输入dotnet test我会得到这个:
dotnet build
dotnet test
C:\git\Testing\TestLib> dotnet test C:\git\Testing\TestLib\TestLib.csproj : warning NU1701: Package 'xunit.runner.visualstudio 2.4.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project. Build started, please wait... C:\git\Testing\TestLib\TestLib.csproj : warning NU1701: Package 'xunit.runner.visualstudio 2.4.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project. Build completed. Test run for C:\git\Testing\TestLib\bin\Debug\netstandard2.0\TestLib.dll(.NETStandard,Version=v2.0) Microsoft (R) Test Execution Command Line Tool Version 16.0.0-preview-20181205-02 Copyright (c) Microsoft Corporation. All rights reserved. Starting test execution, please wait... Unable to find C:\git\Testing\TestLib\bin\Debug\netstandard2.0\testhost.dll. Please publish your test project and retry. Test Run Aborted.
我需要更改哪些内容才能运行测试?
如果有帮助,VS Code 也不会在其测试资源管理器中显示测试。
就我而言,问题在于我的目标是 .NET Core 2.0 并切换到 .NET Core 2.1 解决了这个问题。但是我使用的是 Microsoft.NET.Test.SDK v16.4.0 而不是 15.9.0。