Тесты NUnit не запускаются на netstandard2.1

191
11 декабря 2021, 15:10

У меня есть новый проект, создавал по гайду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());
        }
    }
}
Answer 1

Ответ очень прост: тесты NUnit совсем не поддерживают тип проекта netstandard2.1, вместо этого netcoreapp3.1. К сожалению, я пропустил это, когда читал гайд .NET Core and .NET Standard, где написано, что проект тестов не может быть netstandard по некоторым причинам, но можно использовать совместимый netcoreapp3.1.

READ ALSO
Проблема с ComboBox в WPF c#

Проблема с ComboBox в WPF c#

Проблема в том, что ComboBox не отображает возвращаемый элемент Начнём сначалаУ меня есть

217
Создание проектов c# по шаблону. vscode

Создание проектов c# по шаблону. vscode

Я пытаюсь работать с C# из vscode а не полноценной средой vs по некоторым причинамСоздание консольного проекта доставляют некоторые сложности...

129
Как правильно найти DLL в GAC

Как правильно найти DLL в GAC

Проблема такаяНаписал библиотеку типов на C#

215