Подтвердить что ты не робот

VS 2017 не обнаруживает тесты на .NET Core

может ли кто-нибудь помочь мне получить VS2017 для работы с .NET Core тестовыми проектами?

Я попытался создать проекты MSTest и xUnit unit test для .NET Core из шаблонов VS 2017. Ни один из них не работает в тестовом проводнике (не обнаружен), однако выполнение dotnet test из папки проекта прекрасно работает.

Шаги для воспроизведения:

  • Создать новый проект в VS 2017
  • Выберите шаблон Unit Test Project (.NET Core) или xUnit Test Project (.NET Core)
  • Внедрить некоторые произвольные unit test
  • Создайте решение
  • Перейдите в текстовый проводник и попробуйте Run All

В этот момент окно вывода должно сказать вам, что обнаружено 0 тестов

.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>

</Project>

Если я попытался создать проект MSTest unit test из шаблона, который предназначен для .NET Framework (полный, а не .NET Core), он работал.

Любые идеи?

4b9b3361

Ответ 2

Я думаю, что я испытал такое же поведение. Постарайтесь создать свое решение, чтобы VS мог обнаружить ваши тесты. В противном случае, пожалуйста, поделитесь результатами тестирования файла csproj, чтобы убедиться, что вы правильно указали пакеты. Мой:

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <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>

</Project>

ОБНОВЛЕНИЕ: Я немного поиграл, и похоже, что VS не может найти тесты без <OutputType>Exe</OutputType>

ОБНОВЛЕНИЕ 2: Попробуйте также добавить следующий код в csproj, поскольку я вижу, что VS добавляет в некоторых случаях.

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

Ответ 3

Я столкнулся с этой проблемой, когда VS 2017 не обнаружил модульные тесты MSTest на .NET Core.

Вывод тестов только сообщил, что он обнаружил нулевые тесты.

При запуске dotnet test MyProject.csproj -t в командной строке он сообщил, что у меня не было правильной среды выполнения .NET Core, установленной в соответствии с проектом RuntimeFrameworkVersion.

Установка последнего обновления VS 2017 и среды выполнения .NET Core разрешила проблему.

Ответ 4

У меня была такая же проблема. Я разрешил его, установив пакет "Microsoft.NET.Test.Sdk" из nuget.

Ответ 5

У меня была такая же проблема после перехода от project.json до csproj. И разрешил его, удалив net451 целевую структуру и оставив только netcoreapp1.1. Теперь он отлично работает и обнаруживает каждый раз.

Конечно, если вам нужно много целевых объектов инфраструктуры, вы не должны этого делать, просто используйте CLI для их тестирования...

Ответ 6

Это может быть связано с несогласованными настройками проекта для архитектуры процессора. Цель тестового проекта должна соответствовать архитектуре процессора по умолчанию.

Отметьте fooobar.com/questions/70142/...

Ответ 7

У меня также была эта проблема, и она была устранена, если в моем проекте и тестовом проекте была та же самая версия целевой среды в файле .csproj.

<TargetFramework>netcoreapp1.0</TargetFramework>