Модульные тесты не должны выполняться быстро, потому что вы тестируете только очень специфический блок / систему. Например, если ваша тестируемая система относится к классу ClassA: IClassA, вы выполняете макетирование / заглушку и проверяете только поведение ClassA и не должны тестировать поведение, отличное от ClassA, например, если ClassA использует ClassB. Для достижения этой цели вы должны ввести макет ClassB вместо бетона.
С точки зрения тестов производительности имеет смысл по-прежнему использовать среду тестирования, такую как NUnit / MBUnit / MavenThought, просто хранить эти тесты в отдельной сборке и не вызывать их как часть ваших модульных тестов.
Так что, если вы используете Rake для вызова ваших тестов, некоторые из ваших задач могут выглядеть следующим образом:
Rake Test:All #Run all unit tests
Rake Test:Acceptance #Run all acceptance tests
Rake Test:Performance #Run all performance tests
Rake Test:Integration #Run all integration tests
После непрерывной интеграции Test: All всегда вызывается после успешной сборки, а Test: Performance вызывается в 12:00 один раз в день.