Как создать и установить тестовый адаптер в Visual Studio

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

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

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

Что я делаю не так?

 John Peters30 июн. 2016 г., 16:35
Читайте о создании проектов VSIX.
 Cedric04 июл. 2016 г., 12:06
Хорошо, я нашел, почему vstest не работает. Очень ужасная моя ошибка. Я был в неправильной папке Visual Studio. Я продолжу понимать реализацию Microsoft Test.
 Grx7017 окт. 2018 г., 04:28
Если кто-то борется с VS 2017, правильный путь для установки вашего адаптераCommon7 \ IDE \ Extensions \ TestPlatform \ Extensions.

Ответы на вопрос(2)

но вам не нужна визуальная интеграция с студиями, вам нужно будет сделать следующее:

Создать проект, который является библиотекой классовОчень важно: Название сборкидолжен конец с.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 вручную.

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

https://blogs.msdn.microsoft.com/aseemb/2012/03/03/how-to-make-your-extension-visible-to-the-test-explorer-in-visual-studio-11/https://blogs.msdn.microsoft.com/visualstudioalm/2012/07/31/writing-a-visual-studio-2012-unit-test-adapter/https://blog.dantup.com/2014/02/some-things-i-learned-while-building-my-visual-studio-test-adapter/
Решение Вопроса

твует множество URL, которые могут помочь понять, как реализовать UTE с помощью автоматического тестирования JS:

http://matthewmanela.com/blog/anatomy-of-the-chutzpah-test-adapter-for-vs-2012-rc/https://xpirit.com/wp-content/uploads/2016/03/Xpirit-magazine-2-Protractor-UI-testing.pdfhttps://blogs.msdn.microsoft.com/bhuvaneshwari/2012/03/13/authoring-a-new-visual-studio-unit-test-adapter/

В итоге :
Шаг 1 :

нам нужно реализовать ITestExecutor, чтобы запустить тест с помощью команды приглашения транспортира и вернуть результат.нам нужно реализовать ITestDiscoverer для анализа файла в аргументе, чтобы найти все тесты внутри.

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

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, ...), вам нужно создать парсер, который явно просматривает исходные файлы и находит все тесты.
Вам нужно создать реализовать два интерфейса:

ITestContainerDiscovererITestContainer

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

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

Важно 2: Когда вы создаете файл VSix, вам нужно объяснить два ресурса:

Тип: Microsoft.VisualStudio.MefComponent / Path: | YourProject |Тип: UnitTestExtension / Path | YourProject |

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

 resp7818 янв. 2017 г., 04:01
Как вы решаете проблемы, которые могут быть в тестовом адаптере?
 Cedric18 янв. 2017 г., 09:51
Вы можете лаучать VS в режиме отладки (stackoverflow.com/questions/9281662/...). Но с этим я столкнулся с трудностями, поэтому я использовал старый и самый уродливый способ: записывать логи в файл.

Ваш ответ на вопрос