我有一个新项目,根据指南1创建:解决方案,其中有两个项目:MathUtilities和MathUtilities.Tests;一切都通过控制台,.NET Core 3.0 (Ubuntu 19.10) 已安装。
我已经试过把netstandard2.1版本代替了2.0,但是还是出现了错误Не удалось найти ~/math-utilities/MathUtilities.Tests/bin/Debug/netstandard2.1/testhost.dll. Опубликуйте тестовый проект и повторите попытку。我试图添加NUnit3TestAdapter版本3.15.1,但也没有任何反应。为什么会这样?NUnit 是否与 netstandard2.{0,1} 完全不兼容?
我看到在结果源中,根据指南,netcoreapp3.0指示了测试项目的平台,它netstandard2.1不兼容吗?
清单MathUtilities.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
</Project>
清单MathUtilities.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="nunit" Version="3.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MathUtilities\MathUtilities.csproj" />
</ItemGroup>
</Project>
代码清单:
namespace MathUtilities
{
public class Class1
{
public bool t() =>
true;
}
}
测试清单:
using NUnit.Framework;
namespace MathUtilities.Tests
{
[TestFixture]
public class Tests
{
private Class1 class1;
[SetUp]
public void Setup()
{
class1 = new Class1();
}
[Test]
public void Test1()
{
Assert.IsTrue(class1.t());
}
}
}
答案很简单:NUnit 测试根本不支持项目类型
netstandard2.1,而是netcoreapp3.1。不幸的是,我在阅读.NET Core 和 .NET Standard指南时错过了它,它说由于某种原因不能进行测试项目netstandard,但您可以使用兼容的netcoreapp3.1.