Тесты XUnit больше не обнаруживаются в .Net Core 1.1.

Я только что обновил свой проект до .Net Core 1.1, и теперь все мои тесты не обнаружены. В старой версии (.Net Core 1.0) он работал нормально.

Ниже приведено сообщение в окне вывода VS 2015, созданное XUnit.

------ Discover test started ------
Discovering tests in 'C:\TW\websites2016\AssetsDB\src\Tests\project.json' ["C:\Program Files\dotnet\dotnet.exe" test "C:\TW\websites2016\AssetsDB\src\Tests\project.json" --output "C:\TW\websites2016\AssetsDB\src\Tests\bin\Debug\netcoreapp1.1" --port 61778 --parentProcessId 7316 --no-build]
'test-xunit' returned '-532462766'.
========== Discover test finished: 0 found (0:00:01.7697049) ==========

Коды в проекте.json

{
  "version": "1.0.0-*",
  "testRunner": "xunit",

  "dependencies": {
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "AssetsDB": { "target": "project" },
    "xunit": "2.2.0-beta4-build3444",
    "dotnet-test-xunit": "2.2.0-preview2-build1029",
  },

  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": [
        "dotnet5.4",
        "portable-net451+win8"
      ]
    }
  }
}

Мой образец теста:

namespace Tests
{
    public class QueryPagingAssetsTest
    {
        [Fact]
        public void should_return_PagingAssetItems()
        {
             Assert.True(xxxxx);
        }
    }
}

Есть ли что-то, что мне не хватает? Нужно ли что-то менять, чтобы сделать его совместимым с .Net Core 1.1?

ОБНОВЛЕНО: рабочая версия project.json

Вам нужно добавить библиотеку InternalAbstractions. Если вы перейдете по ссылке Брэда, вам будет предложено использовать «xunit.runner.visualstudio» вместо «xunit.runner.visualstudio». Но AFAIK пока не работает (по состоянию на 12.09.2016)

"dependencies": {
    "AssetsDB": { "target": "project" },
    "Microsoft.DotNet.InternalAbstractions": "1.0.1-beta-003206",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "xunit": "2.2.0-beta4-build3444",
    "dotnet-test-xunit": "2.2.0-preview2-build1029"
    //"xunit.runner.visualstudio": "2.2.0-beta4-build1194"
  },

person TTCG    schedule 09.12.2016    source источник


Ответы (3)


Добавьте "Microsoft.DotNet.InternalAbstractions": "1.0.0" к своим зависимостям, у dotnet-test-xunit есть проблемы с .NET Core 1.1 (и, по-видимому, он будет удален, когда выйдет новый инструментарий на основе csproj). Ознакомьтесь с https://github.com/xunit/xunit/issues/1031#issuecomment-261374279.

person Community    schedule 09.12.2016

Я использую NUnit, и следующее решило мою проблему: установка Microsoft.DotNet.InternalAbstractions, закрытие Visual Studio, удаление project.lock.json, открытие Visual Studio, компиляция и запуск тестов

person Egil Johannes    schedule 10.02.2017

Создание модульных тестов с помощью ASP.NET Core 1.1, xUnit и ReSharper

Моя текущая среда:

  • Виндовс 10 64бит
  • Выпуск Visual Studio Enterprise 2017 15.1 (26403.7)
  • РеШарпер 2017.1.2

После того, как я создал проект с помощью dotnet new xunit, я смог создавать тесты и запускать их с помощью Сессии модульного тестирования ReSharper.

.csproj

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

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
  </ItemGroup>

  <ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
  </ItemGroup>

</Project>

UnitTest.cs

using Xunit;

namespace ErpWebApi.UnitTests
{
   public class UnitTest1
   {
        [Fact]
        public void TestFail()
        {
            Assert.Equal(2, 3);
        }

        [Fact]
        public void TestSucess()
        {
            Assert.Equal(2, 2);
        }
    }
}

Результат:

Просмотреть изображение только с гиперссылкой, без репутации

Ссылка на Microsoft

person Daniel Eisenreich    schedule 03.05.2017