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), он работал.
Любые идеи?
Ответы
Ответ 1
В конце концов, проблема была решена путем изменения моей системы PATH
env. переменная от C:\Program Files\dotnet\
до C:\Progra~1\dotnet\
, как указано в Не удается получить тесты XUnit, работающие с Visual Studio 2017 RC
Спасибо Алексею за предложение в комментариях:)
Ответ 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>