Как выполнить модульное тестирование проекта vsix? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть проект расширения Visual Studio.Он работает нормально, встроен в vsix и делает свою работу.Я использую VS2017

Я хотел бы протестировать его.Я уже писал модульные тесты, используя MSTest v2.

Проблема в том, что: Когда я пытаюсь построить / запустить тестовый проект, возникает ошибка, что он не находит myProject.dll, очевидно, потому что нетодин (myProject собирается в файл .vsix).

Как выполнить модульное тестирование моего проекта vsix?

Редактировать: Отладка работает нормально.
Редактировать 2: Весь выводФайл vsmanifest и файл .vsix.Установка и запуск работает.

Tl; д-р ответа: Не удается проверить vsix.

Ответы [ 2 ]

0 голосов
/ 17 марта 2019

Так что я просто наткнулся на этот пост.Проблема в том, что файлы .dll и .pdb находятся внутри пакета vsix.Таким образом, для модульного тестирования они также должны быть вне его.

Это указывает на ошибку в импортированной цели в файле .csproj:

<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />

Эта цель удаляет dll иpdb как он собирает vsixЭто не должно делать это.Теперь vsix - это просто zip-файл со специальным именем.Таким образом, мы можем разархивировать его.

Я добавил 7z.exe к своему решению в папке с инструментами и запустил это в действиях после сборки:

"$(SolutionDir)Tools\7z.exe" x -aoa "$(TargetDir)$(TargetName).vsix"

Теперь мои модульные тесты работают нормально.

0 голосов
/ 05 июня 2018

Ваш тестовый проект должен иметь тип файла DLL.Например, после того, как вы измените его на тип файла «CS», бегун сможет запустить ваш тест

...