Я работаю с Unit Test с помощью VS2013 Professional. В частности, я использую структуру NUnit (NUnit TestAdapter для VS2013). Моя проблема в том, что когда я запускаю свои тесты, тогда VS начинает строить все проекты внутри решения. В настоящее время проект Unit Test не ссылается ни на один проект решения.
Если я просто закодирую один метод тестирования, например:
[Test]
public void SimpleTestMethod(){
Assert.That("a", Is.EqualTo("a"));
}
и проект Unit Test находится в проекте Solution with N, когда я запускаю свой тест, тогда VS построит весь проект N-1... В моем случае это поведение скучно, потому что требуется слишком много времени (решение содержит много проектов) и некоторые проекты содержат ошибки.
Есть ли способ запустить мой SimpleTestMethod()
без полного построения решения?
Разбейте тестовый проект на несколько проектов, которые ссылаются только на подмножество проектов решений.
Это также хорошая тестовая ведение домашнего хозяйства - есть отдельный тестовый проект для каждого проекта решения, а не один огромный проект с зависимостями от чего-либо еще. Этому есть несколько преимуществ:
Хорошая практика именования - назвать ваши тестовые проекты такими же, как и их целевые проекты, с суффиксом .Tests
. Вы также можете создать папку решений (не настоящую папку) под названием "Тесты" и переместить в нее тестовые проекты.
Что касается того, почему: Тестеры используют блок тестирования модулей и его зависимости для выполнения своих тестов. Если какая-либо из зависимостей сборки изменяется, сборку и зависимости нужно перестроить. Visual Studio не знает, что вызовет внешний инструмент, поэтому он должен собрать все измененные сборки и их иждивенцы.
Если сборка завершилась неудачей, для тестового бегуна нет допустимых сборок, поэтому VS должен перестроить все решение до того, как бегун сможет работать. В этом случае очевидным решением является исправление ошибки.
Есть несколько вариантов остановки, которые вы можете использовать, пока не сможете исправить ошибку:
any references to any solution project is referenced to the Unit Test project
). В любом случае, тестовые прогоны - это внешние инструменты, предназначенные для артефактов сборки (т. Е. Скомпилированных сборок). Сломанная сборка = нет сборочных артефактов
Я слишком долго боролся с этим. Я действительно ненавидел процесс автоматической сборки, даже когда все было успешным.
Я начал выполнять тесты через командную строку. Процесс сборки не требуется. Вы можете написать свои собственные.bat файлы и вести журналы результатов тестирования. Существует множество параметров командной строки, которые можно добавить для настройки того, что вы ищете.