Руководство для запуска тестов с использованием MSTest v1 в Visual Studio 2017 15.8.1

На прошлой неделе я обновился до Visual Studio 2017. Решение с несколькими тестовыми проектами с использованием MSTest v1, казалось, было в порядке. Большинство тестовых проектов отлично выполняют тесты. Это.NET Framework, а не.NET Core.

Однако есть один проект, в котором я сталкиваюсь с проблемами. Это проект тестирования интеграции, то есть он запускает тесты веб-приложений с помощью ChromeDriver и Selenium. Этот проект ссылается на NUnit, хотя эта ссылка взята из другой ссылки на проект. Я не использую NUnit в качестве тестовой среды.

Это ошибка при попытке выполнить любой тест в этом конкретном тестовом проекте: Could not find test executor with URI 'executor://mstestadapter/v1'. Make sure that the test executor is installed and supports.net runtime version. Test project {name} does not reference any.NET NuGet adapter. Test discovery or execution might not work for this project. It recommended to reference NuGet test adapters in each test project in the solution. Could not find test executor with URI 'executor://mstestadapter/v1'. Make sure that the test executor is installed and supports.net runtime version. Test project {name} does not reference any.NET NuGet adapter. Test discovery or execution might not work for this project. It recommended to reference NuGet test adapters in each test project in the solution.

Отключение опции, указанной ниже, заставило все работать: Screen shot of Visual Studio 2017 Options, Test setting.

Я нашел это решение после просмотра заметок для предварительного просмотра на https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes#--visual-studio-2017-version-158-preview-4 (прокрутите вниз до "... What New...", а затем.NET Test Adapter Extension). В нем упоминается это нарушение (хотя оно не нарушало мои другие проекты), но не упоминается, что на самом деле делать, чтобы решить проблему.

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

Я уже пытался проверить, могу ли я "быстро" перейти на MSTest v2, но это было проблемой, потому что System.Runtime 4.1.2 не удалось найти. Я попытался добавить System.Runtime 4.3.0 через NuGet, но это не решило проблему.

Ответ 1

Я получил похожую проблему с Xamarin.UITests и решил ее, установив расширение "Тестовый адаптер NUnit 2" в Visual Studio. В Visual Studio 2017 это делается в меню "Служебные программы"> "Расширения и обновления..."> "Онлайн"> "Поиск по адаптеру NUnit"> щелкните тестовый адаптер NUnit 2, а затем кнопку "Загрузить" для установки. Перезапустите Visual Studio, когда будет предложено завершить установку.

Ответ 2

Было бы интересно понять, как в этом проекте ссылается структура сборки MSTest V1 (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll). Флажок совместимости, который также был отключен на изображении выше, должен обеспечить, чтобы этот проект имел тесты MSTestV1 и включал тесты запуска. Если это не так, то по какой-то причине логика обнаружения распадается и должна быть исправлена - там будет полезен фрагмент того, как ссылается сборка.

Что касается перехода на MSTest V2, этот блог должен помочь: https://blogs.msdn.microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/. И для конкретной проблемы, с которой вы, похоже, сталкиваетесь, эта проблема github на репо кажется похожей: https://github.com/Microsoft/testfx/issues/184.

Ответ 3

"... но это было проблемой, потому что System.Runtime 4.1.2 не удалось найти".

Я думаю, что это параметр в app.config, который не обновляется при обновлении настроек проекта. Я искал System.Runtime в папке пакетов, а затем изменил свой app.config в соответствии с тем, что нашел, а затем эта конкретная проблема исчезла.

Ответ 4

Ответ Caltor в значительной степени решил ее для меня: мне нужен был адаптер NUnit. Но я следовал несколько иным шагам. Вот они для VS 2019 (но, вероятно, применимы и к VS 17):

  • Щелкните правой кнопкой мыши узел "Ссылки" в моем проекте в обозревателе решений
  • .Выберите "Менеджер пакетов NuGet"
  • Нажмите Обзор
  • В поисках nunit3testadapter
  • Нажмите "Установить" в результате, которое появилось

Для меня проблема была похожа на OP - адаптер был установлен в некоторых проектах, но не в других. Но это сбивает с толку это не сразу видно под узлом "Ссылки" для этого проекта. Единственный узел, связанный с nunit под этим узлом References, сказал "nunit.framework". Поэтому ссылки на тестирование с адаптером и без него выглядели одинаково.