У меня есть новый проект, создавал по гайду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 and .NET Standard, где написано, что проект тестов не может быть netstandard по некоторым причинам, но можно использовать совместимый netcoreapp3.1.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости