2012-02-09 3 views
0

Мы с удовольствием с помощью Test :: Unit для нашего приложения Rails с встроенными задачамиСтратегия объединения рельсов и тестирования без рельсов?

rake test 
rake test:units 
rake test:functionals 
rake test:integration 

Как мы растем, мы получаем кучу рубинового кода, который не относится к Rails в все. В основном это входит в lib. Я бы хотел, чтобы люди стали добавлять новые тесты для каталогов в lib, которые могут или не могут загружать среду Rails, и все тесты ruby ​​запускаются на rake: test. Но мне не очень понятно, что предпочтительный способ расширения rake test. Должен ли нам потребоваться один файл .rake для каждого нового каталога? - Это кажется раздражающим.

ответ

-1

Вы тестируете модуль lib, предположительно, поэтому он должен идти в test/unit/lib. Если вы хотите, чтобы код lib был протестирован отдельно, вы могли бы вытащить его в драгоценные камни.

+0

Но тогда среда Rails будет загружена для тех тестов, которые не нужно. Кроме того, я чувствую, что тест/блок предназначен только для тестирования моделей. – lacker

+0

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

0

Corey Haines дает talks on fast rails tests, что может быть полезно для вас.

Здесь an example app that demonstrates how you could layout tests that don't require rails (не забудьте переключить ветвь на no_rails, чтобы увидеть окончательный макет).

т.е. создавать расширения в lib, проверить их spec_no_rails, вызывать эти расширения из вашей модели, и запускать тесты с time rspec -fd -I lib/your_extension/ spec_no_rails/

Смежные вопросы