如何让NUnit3TestAdapter与.Net Standard 2.0一起使用?

时间:2017-12-31 13:53:27

标签: nunit .net-standard

如何让NUnit3TestAdapter与.Net Standard 2.0配合使用?

我收到以下错误:

  

1> C:\ Nikeza \ Mobile \ Nikeza.Mobile \ Tests \ ExampleBased.fsproj:

     

警告NU1701:包' NUnit3TestAdapter 3.9.0'恢复使用   ' .NETFramework,版本= v4.6.1'而不是项目目标框架   ' .NETStandard,版本= 2.0&#39 ;.

     

此软件包可能与您的项目不完全兼容。   1> ExampleBased - >   C:\ Nikeza \移动\ Nikeza.Mobile \测试\ BIN \调试\ netstandard2.0 \ ExampleBased.dll

1 个答案:

答案 0 :(得分:23)

您没有提供足够的信息来诊断项目文件的错误,但它的3.9.0版NUnit适配器可以与.NET Standard 2.0和F#一起使用。我认为您的测试项目针对的是.NET Standard。它需要以.NET Core或.NET 4.6.1+为目标。测试项目被视为可执行文件,它们需要针对特定​​框架,而不是.NET标准。您正在测试的代码可以是.NET Standard。

您应该按照文档Unit testing F# libraries in .NET Core using dotnet test and NUnit阅读NUnit文档.NET Core and .NET Standard

你的项目文件应该是这样的,

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Tests.fs" />
    <Compile Include="Program.fs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
    <PackageReference Include="NUnit" Version="3.9.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.9.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\MathService\MathService.fsproj" />
  </ItemGroup>

</Project>