Модульные тесты в VS2008 принудительно перестраивают все зависимости - PullRequest
1 голос
/ 11 ноября 2009

Почему, когда я прохожу свои модульные тесты в VS2008 - используя run или debug - VS настаивает на восстановлении всех зависимостей тестового проекта, то есть проектов, которые я тестирую в модульных тестах?

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

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

С благодарностью принимаются любые предложения, поскольку это замедляет нашу способность использовать TDD настолько эффективно, насколько это возможно.

Спасибо!

1 Ответ

1 голос
/ 13 ноября 2009

Хорошо, я нашел, по крайней мере, причину проблемы и несколько неудовлетворительное решение этой проблемы !!

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

Почему этот ВСЕГДА перекомпилируется? Это как-то связано с Entity Framework. Создайте пустой проект и добавьте к нему пустую модель EF - он ВСЕГДА перекомпилируется, даже если вы его не меняли. Это приводит к тому, что любые зависимости перекомпилируются, предположительно из-за изменения метаданных сборки данных.

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

Делая это, я сократил время сборки только для запуска одиночного модульного теста с ~ 20 секунд до ~ 7 секунд - что имеет огромное значение, когда ты пишешь десятки модульных тестов каждый день!

Если у кого-то есть идеи относительно того, почему модели EF делают это, мне было бы очень интересно услышать ...

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