У меня были проблемы с VS 2017 с тех пор, как я его установил. Теперь кажется, что модульные тесты будут запускаться только из командной строки "dotnet test."
Мой проект - это .NET Core 1.1.1. У меня установлен SDK и обновление фреймворка для 1.1.1.
Я попробовал образец в MSDN (https://msdn.microsoft.com/en-us/library/ms182532.aspx), который также не работает точно так же.
Все пакеты NuGet для тестов и основного проекта актуальны. И тестовый проект, и основной проект собираются без ошибок. Тесты успешно запускаются из командной строки.
Кто-нибудь добился запуска модульных тестов в VS 2017, если да, то как?
Спасибо, Джон
Вот пример простого тестового проекта, который не работает на GitHub. Это пример с xUnit, но я пробовал NUnit и встроенные в visual studio тесты MS. Независимо от того, какое тестирование или какие изменения я делаю, я не могу заставить VS test runner найти какие-либо тесты.
DEL %TEMP%\VisualStudioTestExplorerExtensions
Microsoft.DotNet.InternalAbstractions
(см. пост SO)тест -> настройки теста -> архитектура процессора по умолчанию
установлена на x86Вопрос Может ли кто-нибудь предоставить рабочий пример решения .Net Core 1.1.0 в VS2017 (файлы проекта .csproj), где VS test explorer успешно находит модульные тесты ИЛИ показать мне проблему в приведенном примере.
В моем случае, оказалось, что я просто должен был получить обновление мой адаптеров для тестирования и тестового фреймворка. Сделано.
Например, с помощью диспетчера пакетов NuGet:
Это просто работал для меня (Дон'т знаю, если это является результатом смены рабочих столов, которые что-то поврежден):
Удаление против тест кэш-файлы в %temp%\VisualStudioTestExplorerExtensions и перезапустить VS2017.
API для тестирования адаптеров для .Чистая ядре изменились с момента выпуска Visual Studio 2017 и переход от проекта.формат JSONв формате
csproj файл. Это сделало существующий
dotnet ограничителя-тест-*адаптеры, как
dotnet ограничителя-тест-нанит` устарело.
Адаптеры были обновлены, но способ установки и запуска тестов в Visual Studio или в командной строке с тестом dotnet ограничителя требует различных ссылок в тестовых проектах. Внимание какой-либо документации, вы обнаружите, что ссылка пакеты в dotnet ограничителя-тест -* формат, потому что они устарели.
Во-первых, ваш тестовый проект должен предназначаться для определенной платформы, либо .Чистая Core или .Чистые рамки. Это не цель .Чистый стандарт даже если код тестируемого .Чистый стандарт. Это потому, что цель испытаний свидетельствует, что платформы для запуска тестов под. .Сетка стандарт как ЗКС (переносной библиотеки классов) в том, что она может работать на многих платформах.
Далее вы должны добавить ссылки на сайт Microsoft.Чистая.Тест.СДК, ваш тестовый фреймворк и совместимый переходник. Для Нанит, ваши ссылки будут выглядеть так,
<itemgroup>
<packagereference Include="Microsoft.NET.Test.Sdk" Version="15.0.0"></packagereference>
<packagereference Include="NUnit" Version="3.7.1"></packagereference>
<packagereference Include="NUnit3TestAdapter" Version="3.8.0"></packagereference>
</itemgroup>
Комментарий выше упоминает, добавив,
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
Это'т строго обязательным, но может помочь. Он добавляется автоматически ко всем проекты модульных тестов в Visual Studio, чтобы помочь ему быстро найти проекты с тестами.
Если ваши тесты не'т появляются в Visual Studio, то первое, что нужно попробовать закрывает свое решение и вновь открыв их. Появляются ошибки в Visual Studio не обнаруживая изменения в проекты при их редактировании.
Дополнительные сведения см. В разделе Тестирование .Чистое ядро с Нанит в Visual студии 2017
У меня был тот же вопрос, и получил его на работу следующим образом.. :
Забыв сделать тест класса общие предотвратите'ы методы тестирования внутри должен быть обнаружен
У меня был проект в xUnit по умолчанию и удалил образец файл unittest1.в CS, заменив ее на тест класс контроллера, с пару тестов, но ни один не был найден
Короче говоря, после обновления в xUnit, тест.СДК в xUnit.пакеты бегун и восстановление проекта я обнаружил ошибку построения:
тест xUnit1000 классов ошибок должны быть открытыми
К счастью, обновленная версия бросил это исключение, чтобы избавить меня от некоторых неприятностей
Изменение тестового класса для публичных фиксированная моя проблема
В моем случае я цель тестового проекта для 64-разрядной архитектуры и создание архитектуры тест (тест->По умолчанию процессор архитектура ) изменен был установлен на x86`. Они не'т матч.
После установки параметров тестирования архитектура для 64-разрядных и перестроить все тесты были вновь обретены.
У меня были проблемы с VS 2017 найти мой UnitTest, а также. Это было'т точную проблему Джон спрашивал - но это был первый результат в Google, который я искал, поэтому я хотел бы поделиться моей проблемой.
Я вошел в наследство решение от VS2010 переходя VS2013, VS2015. Сейчас в VS2017 кажется пространств имен для атрибута [TestMethod]
изменились.
Перед его использованием
Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0
Я создал новый Test.dll в проекте и используемая по умолчанию
Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0
Поэтому я принял решение создать новый проект UnitTest из VS2017. Может быть, смена сборок на старый тестовый проект бы так же работал. С новой ссылкой VS2017 обнаружили эти модульные тесты.
Не читайте устаревшие статьи в разделе MSDN. Материалы, относящиеся к .NET Core, находятся на сайте docs.microsoft.com
https://docs.microsoft.com/en-us/dotnet/articles/core/testing/
Вообще говоря, вам нужно консольное приложение .NET Core, чтобы содержать примеры модульных тестов.
Убедитесь, что вы используете правильный платформу Microsoft.Чистая.Тест.СДК:
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
Не используйте предварительно освободить один. Или вы должны изменить к консоли приложения (не библиотеки). У меня аналогичная проблема, но с последним релизом (15.0.0) он начинает работать снова.
Кроме того, вы, возможно, придется добавить:
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
но я не думаю, что это нужно.
Я знаю, что ОП перечислил на его контрольный список, но это's легко выходят ссылки, а делать чистую установку на Visual Studio 2017 и настройка нового проекта. Помимо шаблон проекта Нанит и база Нанит необходимо установить Нанит адаптер отдельно, например, используя команду NuGet установить-пакет NUnit3TestAdapter -версии 3.9.0`. После этого в Visual студии сообщества 2017 начали открывать модульные тесты без каких-либо проблем.
В моем случае Обозреватель тестов не мог'т найти мои тесты после того, как я перенес проект в новое решение.
Ответ был просто, что у меня есть ссылка на старый МС тестовый адаптер в моем проекте.
У меня был дубликат строки ниже для версии 1.1.11 из теста MS адаптера в мой КС.файл proj:
в <импорт проекта=то"..\пакеты\программы MSTest.TestAdapter.1.1.18\строить\net45\программы MSTest.TestAdapter.реквизит" и Condition="Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props')" />
Чтобы устранить проблему,
Просто имел эту проблему с помощью Visual студии, будучи не в состоянии найти мои тесты, не мог'т видите кнопку, чтобы запустить их, кроме способа, и они были'т подхватили запускать все тесты в проекте.
Оказалось, что мой тестовый класс не'т публике! Делая это публично разрешено против, чтобы обнаружить тестов.
В моем случае, это был проект, я был повышен тестовый проект с более ранней .Net версии. в приложении.конфиг я assemblybindings в предыдущей версии зависимых сборок.
После фиксации assembnlybindings в приложении.конфиг, мои тесты приметили.
Лучшие ответы выше не работает для меня (перезагрузка, обновление до версии 1.1.18 ... я уже был обновлен, удаление временных файлов, очистки кэша NuGet Для и т. д.).
Что я обнаружил, что у меня были разные ссылки на действия MSTest.TestAdapter и действия MSTest.Основы в различных тестовых проектов (мое решение имеет два). Один указал на 1.1.18 как...
пакетов.конфиг
<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />
... но еще есть ссылки на 1.1.11. Некоторые из ответов выше привести к этому открытию, когда две версии библиотек появился в моей временной директории (папке %Temp%\VisualStudioTestExplorerExtensions\) после перезагрузки визуальной студии.
Просто обновлять мои пакеты.конфигурации в версии 1.1.18 то, что восстановили мой модульные тесты функционал в vs. Похоже, что есть некоторые ошибки, которые не позволяют параллельное литература в действия MSTest библиотеки. Надеюсь, это поможет вам.
Подробнее:
Решением было удаление приложения My`.конфигурационный файл из моего проекта модульного теста. Тесты вновь появится!
Ссылаться на этот файл некоторые DLL's в bindingredirects, которые не были фактически присутствует в ссылках проекта. Повторно добавить assemblybindings, которые строго необходимы для вашего проекта.
В моем случае проблему вызвал проект UWP, присутствующий в решении.
Когда я выгрузил UWP-проект, тесты обнаружились. Когда я загрузил его обратно, тесты снова исчезли.
Попробуйте выгрузить все проекты и оставить только тестовый проект. Десять раз перестройте решение, и тест появится в Test Runner. Загружайте проекты по одному и каждый раз перестраивайте решение, чтобы выяснить, какой проект вызывает проблему.
Удаление старых .DLL должна помочь. Очистка временные файлы, расположенные в каталоге %Temp% в C:\Users(имя_пользователя)\папка AppData\местные\темп
Я'пробовала все, но ничего не помогало. В моем случае у меня есть решение с несколькими тестовыми проектами и некоторые из них были с использованием старых версий MS-тестовой платформы, поэтому в Visual Studio нашла только эти.
Я установил рамках пакетов испытание для всех тестовых проектов, как показано в принято отвечать. Потом удалил ссылки на старые качества-инструменты, перезапустить визуальной студии, и теперь я вижу все испытания.