Как добавить проект VSTO в качестве ссылки на проект модульного тестирования? - PullRequest
12 голосов
/ 19 марта 2010

Чтобы не загрязнять мои проекты юнит-тестами, я хотел бы создать отдельный проект для моих юнит-тестов;Я добавляю ссылку на тестируемый проект в проект модульных тестов.Однако это не очень хорошо работает с моими проектами надстроек VSTO excel: когда я создаю отдельный проект модульного тестирования и перехожу в Add Reference> Projects, проект выбрать не удается.это Добавить ссылку> Обзор и выберите надстройку DLL из папки отладки.Время от времени я также сталкивался с проблемами, когда ссылка вдруг не работает, требуя удаления / повторного добавления ссылки dll.
Может кто-нибудь объяснить, почему проект VSTO не отображается как обычный?И есть ли лучший способ сделать это, чем то, что я делаю в настоящее время?

Ответы [ 5 ]

4 голосов
/ 07 января 2011

Я могу предложить ответ на последнюю часть вашего вопроса об избежании проблемы.

Один из способов обойти это состоит в том, чтобы отделить код, который явно не ссылается на библиотеки VSTO, в другой проект, а затем протестировать его - я понимаю, что это, вероятно, потребует усилий, чтобы фактически иметь код, который не ссылается на VSTO .

Но, таким образом, код, который вы тестируете, - это код, который можно протестировать без ссылки на VSTO, а код, специфичный для VSTO, вероятно, будет протестирован с помощью интеграционных тестов (вручную или через API, например White - где Белому не нужно ссылаться на VSTO, потому что он просто запускает исполняемый код, который использует VSTO)

Хотя это может означать значительный редизайн - например, вам может потребоваться создать классы-обертки - и это может оказаться для вас нецелесообразным в данный момент, но я считаю, что это обычно считается хорошей практикой (это своего рода разделение интересов ), поскольку это облегчает управление кодом и часто помогает изолировать определенные ошибки от осложнений VSTO.

3 голосов
/ 22 октября 2010

У меня просто была такая же проблема при попытке добавить ссылку на проект надстройки VSTO в проект установки WIX.Моим решением было вручную добавить ссылку на проект, отредактировав файл целевого проекта в блокноте.Просто найдите существующий тег ProjectReference xml в файле проекта, скопируйте его и замените сведения о пути к файлу, имя и т. Д.

Больше обходного пути, чем решения, но я надеюсь, что это поможет.Не уверен, что в проектах надстройки VSTO отличается тем, что они не отображаются в диалоговом окне добавления ссылок.

0 голосов
/ 06 мая 2016

Я не смог увидеть ссылку на свой VSTO Addin, пока не установил флажок «Зарегистрироваться для взаимодействия COM» на вкладке «Сборка» в свойствах.

0 голосов
/ 09 августа 2013

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

0 голосов
/ 29 сентября 2011

Что привело меня сюда, так это попытка юнит-тестирования Presenter моего плагина VSTO на основе MVP. Лучший ответ, который я видел до сих пор, это: http://blogs.msdn.com/b/pstubbs/archive/2006/09/15/756488.aspx

По сути, вы запускаете свой плагин VSTO удаленно, а затем можете отдельно запустить свой набор тестов для него. Это позволяет избежать попыток издеваться над немодальным приложением Office.

Он позволяет вам тестировать слой Presenter непосредственно в среде (работающей как плагин для реального приложения Office), в которой он должен быть протестирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...