如何让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
答案 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>