Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

Мне не удалось добавить ссылку на мой VSTO Addin, пока я не отметит "Регистрация для COM-взаимодействия" на вкладке "Сборка" в свойствах.