2

Я хочу создать тестовый адаптер транспортира для Visual Studio. Я нашел, что могу создать его с помощью ITestExecutor и ITestDiscoverer.
Я следую документации Marcel De Vries (https://xpirit.com/wp-content/uploads/2016/03/Xpirit-magazine-2-Protractor-UI-testing.pdf), но я не могу найти, как добавить расширение в Visual Studio.Как создать и установить тестовый адаптер в Visual Studio

  • Я попытался добавить свою сборку непосредственно в папку \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ Extensions.
  • Я попытался создать Vsix и установить его. (с UnitTestExtension as Asset)
  • Я попытался загрузить проект Marcel (https://github.com/XpiritBV/ProtractorAdapter), скомпилировать и установить его.

Это не работает, команда «vstest.console.exe/listdiscoverers/UseVsixExtensions: true» не отображает моего первооткрывателя. И тесты JS не найдены VS.

Что я делаю неправильно?

+0

Читайте на создание VSIX проектов. –

+0

Хорошо, я нашел, почему vstest не работает. Очень уродливая ошибка моего. Я был в неправильной папке с визуальной студией. Я продолжу понимать реализацию Microsoft Test. – Cedric

ответ

6

Документация очень бедна для создания тестового адаптера для VS. Есть много URL, которые могут помочь понять, как реализовать UTE с JS автоматизированного тестирования:

В заключение:
Шаг 1:

  • нам нужно реализовать I TestExecutor для запуска теста с транспортиром запросит команду и вернет результат.
  • Нам нужно реализовать ITestDiscoverer для анализа файла в аргументе, чтобы найти все тесты внутри.

Вы можете проверить эту основную версию без VSIX: Перейти в папку расширения Test Visual Studio (C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ Расширения для VS 2013) и добавьте свои DLL и зависимости. Попробуйте запустить тесты с командами, как и в окнах командной строки:

cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow 
vstest.console.exe "c:\test\test.js" 

Шаг 2:
По умолчанию Visual Studio только синтаксический .dll и .exe файлы. Если вы хотите разобрать другой тип файла (.lua, .js, ...), вам нужно создать парсер, который явно просматривает исходные файлы и находит все тесты.
Вам нужно создать реализовать два интерфейса:

  • ITestContainerDiscoverer
  • ITestContainer

Этот проект (https://github.com/XpiritBV/ProtractorAdapter) будет полезно понять, как осуществить это, и как адаптировать свой код, чтобы подписаться на любые изменения в вашем проекте (Добавить файл, Изменить файл, Загрузка проекта и т. д.).

Важно: вам нужно создать проект VSix, чтобы проверить это! Если нет, Visual Studio не загружает ваш TestContaineDiscoverer.

Важно 2: При создании файла VSIX, необходимо объяснить двух активов:

  • Тип: Microsoft.VisualStudio.MefComponent/Путь: | YourProject |
  • Тип: UnitTestExtension/Path | YourProject |

Надеюсь, это поможет кому-то.

+0

Как вы отлаживаете любые проблемы, которые могут возникнуть в тестовом адаптере? – resp78

+1

Вы можете использовать lauchn VS в режиме отладки (http://stackoverflow.com/questions/9281662/how-to-debug-visual-studio-extensions). Но я столкнулся с трудностями, поэтому я использовал старый и уродливый способ: записывать журналы в файл. – Cedric

2

Если вам необходимо запустить тестовый адаптер с vstest.console.exe, но не нуждаются в Visual Studio интеграции вам нужно будет сделать следующее:

  • Создайте проект, который является библиотекой классов
  • Очень важно: имя сборки обязательно конец с .TestAdapter или vstest.console.exe не распознает тестовый адаптер. Вы можете изменить этот параметр в свойствах вашего проекта.
  • Импорт Microsoft.VisualStudio.TestPlatform.ObjectModel, который для меня был расположен в C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ Microsoft.VisualStudio.TestPlatform. ObjectModel.dll
  • Вам нужно только реализовать ITestDiscoverer и ITestExecutor
  • Если тестовый адаптер для .dll или .exe файлы адаптера тест по умолчанию будет работать первым. Я не мог найти способ отключить это.

Принятый выше ответ и код были очень полезны для меня, когда выясняли, как создать тестовый адаптер. Имейте в виду, что если вы создаете VSIX, тогда тип актива UnitTestExtension недоступен в списке, но, похоже, работает и может быть добавлен в файл .vsixmanifest вручную.

Дополнительные полезные ссылки:

 Смежные вопросы

  • Нет связанных вопросов^_^