Как написать модульный тест для пакета Visual Studio

Сейчас я работаю над проектом пакета визуальной студии, в настоящее время все наши тесты просто имитируют то, как мы взаимодействуем с визуальной студией с открытыми и закрытыми окнами, выбором меню, нажатием кнопки и т. д. Я думаю, что эти тесты можно классифицировать как интегрированные тесты и они сильно зависят от процесса devenv.exe. Для чистого модульного теста я просто хочу протестировать одну из своих бизнес-логик и смоделировать другие зависимости. Хотя Visual Studio SDK содержит тестовую библиотеку по пути VisualStudioIntegration\Common\Source\CSharp\UnitTest в папке SDK, я нашел ее слишком простой проект, слишком молодой, чтобы использовать его в моем проекте. Когда я попытался написать юнит-тест с нуля, у меня появилось много проблем с имитацией интерфейсов VSX. Также так мало ресурсов о модульном тесте VSX. Может ли кто-нибудь дать мне несколько советов или ссылок по этому поводу? Любая помощь приветствуется.


person Bruce    schedule 15.05.2012    source источник
comment
MSDN: Практическое руководство. Запуск модульных тестов для расширений UML msdn.microsoft.com /en-us/library/gg985355.aspx#Host   -  person Smartkid    schedule 12.12.2012


Ответы (1)


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

В принципе, почему бы просто не запустить тесты вашего плагина в экспериментальном улье на программном экземпляре?

Это был полезный ресурс для запуска экземпляра Visual Studio через COM: http://blogs.msdn.com/b/kirillosenkov/archive/2009/03/03/how-to-start-visual-studio-programmatically.aspx

person gameweld    schedule 17.05.2012
comment
Спасибо за вашу помощь, я просто не предпочитаю обедать VS Exp для запуска моих тестов, так как у меня есть большое количество тестовых случаев для запуска, выполнение этих случаев в VS Exp всегда вызывает утечку памяти. Кстати, я, наконец, получил правильный чистый модульный тест, я издевался над всеми зависимостями, используя макеты носорога, но для этого требуется глубокое знание того, как работает VSX и сервисы, созданные VS. - person Bruce; 20.05.2012