Инструменты
Я обычно привязываю сочетание клавиш к контекстному запуску.Вы можете сделать это в настройках Visual Studio, нажав «Инструменты», «Параметры», и в разделе «Среда -> Клавиатура» вы можете найти «ReSharper.ReSharper_ReSharper_UnitTest_RunContext».Я полагаю, что Resharper 6 назначит ему сочетание клавиш Ctrl + T , R .Я обычно всегда назначал его Alt + ; .
Это запустит модульные тесты в контексте .Так что, если ваш курсор находится внутри теста, вы только что закончили писать;этот тест запускается.Если курсор находится внутри Test Class / Test Fixture;запускается.
Вы также можете сделать несколько шаблонов R # .Обычно я делаю шаблон с именем Test
, который выглядит следующим образом:
[Test] //NUnit Change attribute to [TestMethod] if MSTest.
public void $NAME$()
{
$END$
}
Я предпочитаю шаблоны R #, а не фрагменты кода Visual Studio, потому что вы можете создавать шаблоны уровня «Решение», которые сохраняются в файле XML вместе ссторона файла решения.Поэтому, когда вы проверяете это;все ваши коллеги также имеют доступ к шаблонам;или даже вы с другой рабочей станции.
Таким образом, вы можете продолжать добавлять тесты без всяких шаблонов.Вы даже можете создавать шаблоны файлов для целых приборов.
Реальная хитрость в плавном развитии - это изучение всех сочетаний клавиш.Как только вы знаете их и овладеете ими;ваши руки начинают делать это, даже не задумываясь.Добавьте / измените тест, и вы начнете автоматически нажимать команду запуска контекста (какую бы вы ни использовали), даже не задумываясь.
Непрерывная интеграция
Еще один не связанный инструмент;но очень мощный, с которым должен ознакомиться каждый TDDer - это сервер непрерывной интеграции (CI).Это позволит вам запускать тесты каждый раз при входе в систему контроля версий.Со временем достаточно большие проекты получат наборы из 1000 тестов.Запускать их все время самому себе становится непрактичным.Сервер CI, такой как TeamCity , будет запускать ваши тесты на сервере при регистрации. Затем он сообщит обо всем, что сломалось, когда это будет сделано;так что вы можете продолжать работать, пока он запускает другие тесты.Возможно, вы не думали, что сломали, но сделали.Есть и другие хорошие бесплатные игры;как Хадсон . РЕДАКТИРОВАТЬ : Как Петр указал в комментариях;CruiseControl.NET - это CI-сервер с открытым исходным кодом, который существует уже некоторое время;определенно стоит проверить.
Мое типичное руководство - запускать тесты, которые я считаю релевантными.Я использую NUnit, который имеет [Category]
атрибут.Я управляю всеми категориями, которые, я думаю, затронуты;и пусть CI-сервер позаботится обо всем остальном.
Coding Discipline
Тесты - это тоже код.Они должны быть реорганизованы;и поддерживается.Я видел, как многие люди отказываются от тестирования, потому что они заканчивают тестами на спагетти.Держите свои юнит-тесты сосредоточенными на маленьком, единственном модуле.Он начинает тормозить вас и вашу команду, когда испытания становятся хрупкими.Как правило, не вдаваясь в подробности;следование принципам SOLID помогает в тестировании.