Тесты модулей не обнаружены в Visual Studio 2017

У меня были проблемы с 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 найти какие-либо тесты.

What I've Tried

  • Удаление файлов кэша тестов VS DEL %TEMP%\VisualStudioTestExplorerExtensions
  • Перезапуск VS
  • Закрытие/открытие проводника тестов
  • для xUnit установите Microsoft.DotNet.InternalAbstractions (см. пост SO)
  • для NUnit убедитесь, что адаптер установлен и имеет ту же версию (3), что и пакет NUnit
  • `тест -> настройки теста -> архитектура процессора по умолчанию установлена на x86

Вопрос Может ли кто-нибудь предоставить рабочий пример решения .Net Core 1.1.0 в VS2017 (файлы проекта .csproj), где VS test explorer успешно находит модульные тесты ИЛИ показать мне проблему в приведенном примере.

Комментарии к вопросу (9)

В моем случае, оказалось, что я просто должен был получить обновление мой адаптеров для тестирования и тестового фреймворка. Сделано.

Например, с помощью диспетчера пакетов NuGet:

Комментарии (15)

Это просто работал для меня (Дон'т знаю, если это является результатом смены рабочих столов, которые что-то поврежден):

Удаление против тест кэш-файлы в %temp%\VisualStudioTestExplorerExtensions и перезапустить VS2017.

Комментарии (6)

API для тестирования адаптеров для .Чистая ядре изменились с момента выпуска Visual Studio 2017 и переход от проекта.формат JSONв форматеcsproj файл. Это сделало существующийdotnet ограничителя-тест-*адаптеры, какdotnet ограничителя-тест-нанит` устарело.

Адаптеры были обновлены, но способ установки и запуска тестов в Visual Studio или в командной строке с тестом dotnet ограничителя требует различных ссылок в тестовых проектах. Внимание какой-либо документации, вы обнаружите, что ссылка пакеты в dotnet ограничителя-тест -* формат, потому что они устарели.

Во-первых, ваш тестовый проект должен предназначаться для определенной платформы, либо .Чистая Core или .Чистые рамки. Это не цель .Чистый стандарт даже если код тестируемого .Чистый стандарт. Это потому, что цель испытаний свидетельствует, что платформы для запуска тестов под. .Сетка стандарт как ЗКС (переносной библиотеки классов) в том, что она может работать на многих платформах.

Далее вы должны добавить ссылки на сайт Microsoft.Чистая.Тест.СДК, ваш тестовый фреймворк и совместимый переходник. Для Нанит, ваши ссылки будут выглядеть так,





Комментарий выше упоминает, добавив,



Это'т строго обязательным, но может помочь. Он добавляется автоматически ко всем проекты модульных тестов в Visual Studio, чтобы помочь ему быстро найти проекты с тестами.

Если ваши тесты не'т появляются в Visual Studio, то первое, что нужно попробовать закрывает свое решение и вновь открыв их. Появляются ошибки в Visual Studio не обнаруживая изменения в проекты при их редактировании.

Дополнительные сведения см. В разделе Тестирование .Чистое ядро с Нанит в Visual студии 2017

Комментарии (7)

У меня был тот же вопрос, и получил его на работу следующим образом.. :

  • Сначала закройте все экземпляры Visual Studio и удалите эту папку : папку %Temp%\VisualStudioTestExplorerExtensions .(Запуск тестов с помощью Visual студии)
  • Зайти в Диспетчер пакетов NuGet и установить Microsoft.Чистая.Тест.СДК(15.3.0-просмотр-20170425-07), а затем установите в xUnit.бегун.visualstudio(2.3.0-бета1-build1309). См. прикрепленный скриншот из NuGet, чтобы увидеть все пакеты, которые я должен был установить, чтобы получить последнюю против 2017 обнаружить мои тесты.
Комментарии (7)

Забыв сделать тест класса общие предотвратите'ы методы тестирования внутри должен быть обнаружен

У меня был проект в xUnit по умолчанию и удалил образец файл unittest1.в CS, заменив ее на тест класс контроллера, с пару тестов, но ни один не был найден

Короче говоря, после обновления в xUnit, тест.СДК в xUnit.пакеты бегун и восстановление проекта я обнаружил ошибку построения:

тест xUnit1000 классов ошибок должны быть открытыми

К счастью, обновленная версия бросил это исключение, чтобы избавить меня от некоторых неприятностей

Изменение тестового класса для публичных фиксированная моя проблема

Комментарии (4)

В моем случае я цель тестового проекта для 64-разрядной архитектуры и создание архитектуры тест (тест->По умолчанию процессор архитектура ) изменен был установлен на x86`. Они не'т матч.

После установки параметров тестирования архитектура для 64-разрядных и перестроить все тесты были вновь обретены.

Комментарии (1)

У меня были проблемы с 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 обнаружили эти модульные тесты.

Комментарии (1)

Не читайте устаревшие статьи в разделе MSDN. Материалы, относящиеся к .NET Core, находятся на сайте docs.microsoft.com

https://docs.microsoft.com/en-us/dotnet/articles/core/testing/

Вообще говоря, вам нужно консольное приложение .NET Core, чтобы содержать примеры модульных тестов.

Комментарии (14)

Убедитесь, что вы используете правильный платформу Microsoft.Чистая.Тест.СДК:

Не используйте предварительно освободить один. Или вы должны изменить к консоли приложения (не библиотеки). У меня аналогичная проблема, но с последним релизом (15.0.0) он начинает работать снова.

Кроме того, вы, возможно, придется добавить:



но я не думаю, что это нужно.

Комментарии (3)

Я знаю, что ОП перечислил на его контрольный список, но это's легко выходят ссылки, а делать чистую установку на Visual Studio 2017 и настройка нового проекта. Помимо шаблон проекта Нанит и база Нанит необходимо установить Нанит адаптер отдельно, например, используя команду NuGet установить-пакет NUnit3TestAdapter -версии 3.9.0`. После этого в Visual студии сообщества 2017 начали открывать модульные тесты без каких-либо проблем.

Комментарии (3)

для меня вопрос был, как я ошибочно размещенные тесткейсам в внутренний класс

[TestClass]
  internal class TestLib {
}

что вызывает тесткейсам не был выявлен.

Комментарии (0)

В моем случае Обозреватель тестов не мог'т найти мои тесты после того, как я перенес проект в новое решение.

Ответ был просто, что у меня есть ссылка на старый МС тестовый адаптер в моем проекте.

У меня был дубликат строки ниже для версии 1.1.11 из теста MS адаптера в мой КС.файл proj:

в <импорт проекта=то"..\пакеты\программы MSTest.TestAdapter.1.1.18\строить\net45\программы MSTest.TestAdapter.реквизит" и Condition="Exists(&#39;..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props&#39;)" />

Чтобы устранить проблему,

  1. Правой кнопкой мыши на проекте и выберите выгрузить проект.
  2. Щелкните правой кнопкой мыши проект и выберите Редактировать
  3. Удалить строку, которая импортирует старой версии адаптера.
  4. Щелкните правой кнопкой мыши на проекте и выберите перезагрузить проект.
  5. Перестроить Решение/Проект
Комментарии (1)

Просто имел эту проблему с помощью Visual студии, будучи не в состоянии найти мои тесты, не мог'т видите кнопку, чтобы запустить их, кроме способа, и они были'т подхватили запускать все тесты в проекте.

Оказалось, что мой тестовый класс не'т публике! Делая это публично разрешено против, чтобы обнаружить тестов.

Комментарии (0)

Для меня было проще создать новый тестовый проект, который отлично работает с Visual студии 2017... и просто скопировать файлы тестов, добавление ссылок и NuGet-пакеты по мере необходимости.

Комментарии (1)

В моем случае, это был проект, я был повышен тестовый проект с более ранней .Net версии. в приложении.конфиг я assemblybindings в предыдущей версии зависимых сборок.

После фиксации assembnlybindings в приложении.конфиг, мои тесты приметили.

Комментарии (0)

Открытие

Лучшие ответы выше не работает для меня (перезагрузка, обновление до версии 1.1.18 ... я уже был обновлен, удаление временных файлов, очистки кэша NuGet Для и т. д.).

Что я обнаружил, что у меня были разные ссылки на действия MSTest.TestAdapter и действия MSTest.Основы в различных тестовых проектов (мое решение имеет два). Один указал на 1.1.18 как...

пакетов.конфиг


... но еще есть ссылки на 1.1.11. Некоторые из ответов выше привести к этому открытию, когда две версии библиотек появился в моей временной директории (папке %Temp%\VisualStudioTestExplorerExtensions\) после перезагрузки визуальной студии.

Решение

Просто обновлять мои пакеты.конфигурации в версии 1.1.18 то, что восстановили мой модульные тесты функционал в vs. Похоже, что есть некоторые ошибки, которые не позволяют параллельное литература в действия MSTest библиотеки. Надеюсь, это поможет вам.

Подробнее:

  • Визуальная студия 2017 ЛОР: 15.5.6 (у меня был обновлен с 15.0.1 с надеждами, чтобы решить эту проблему, но у меня в обоих)
Комментарии (0)

Решением было удаление приложения My`.конфигурационный файл из моего проекта модульного теста. Тесты вновь появится!

Ссылаться на этот файл некоторые DLL's в bindingredirects, которые не были фактически присутствует в ссылках проекта. Повторно добавить assemblybindings, которые строго необходимы для вашего проекта.

Комментарии (0)

В моем случае проблему вызвал проект UWP, присутствующий в решении.

Когда я выгрузил UWP-проект, тесты обнаружились. Когда я загрузил его обратно, тесты снова исчезли.

Попробуйте выгрузить все проекты и оставить только тестовый проект. Десять раз перестройте решение, и тест появится в Test Runner. Загружайте проекты по одному и каждый раз перестраивайте решение, чтобы выяснить, какой проект вызывает проблему.

sample repo

сообщение об ошибке VS

Комментарии (1)

Удаление старых .DLL должна помочь. Очистка временные файлы, расположенные в каталоге %Temp% в C:\Users(имя_пользователя)\папка AppData\местные\темп

Комментарии (0)

Я'пробовала все, но ничего не помогало. В моем случае у меня есть решение с несколькими тестовыми проектами и некоторые из них были с использованием старых версий MS-тестовой платформы, поэтому в Visual Studio нашла только эти.

Я установил рамках пакетов испытание для всех тестовых проектов, как показано в принято отвечать. Потом удалил ссылки на старые качества-инструменты, перезапустить визуальной студии, и теперь я вижу все испытания.

Комментарии (0)