Тесты на огурец Аруба (ruby1.9.2)
Я только что установил драгоценный камень Аруба, который является расширением огурца. Он позволяет вам тестировать приложения командной строки - например, генераторы в Rails (но, как указывается в документации, вы можете использовать его для любого приложения cmd).
Я следил за этой основной лабораторной статьей об ее использовании, но по какой-то причине он не прошел первый шаг: первый шаг - зеленый (создание приложения), но следующий шаг пытается cd test_app
и не может найти его и терпит неудачу.
Given I run "rails new test_app" # features/step_definitions/aruba_steps.rb:95
And I cd to "test_app" # features/step_definitions/aruba_steps.rb:91
tmp/aruba/test_app is not a directory. (RuntimeError)
./features/step_definitions/aruba_steps.rb:92:in `/^I cd to "([^"]*)"$/'
features/generators.feature:9:in `And I cd to "test_app"'
Может показаться, что папка приложения на самом деле не создается, хотя, глядя в базовый каталог, я вижу, что tmp/aruba/ fold есть. Пройдя немного по источнику, я не могу придумать, почему. Кто-нибудь еще имел опыт работы с этим драгоценным камнем и нашел то же самое?
Есть ли какие-нибудь хорошие альтернативы BDD для тестирования генераторов или рейка и т.д.?
Далее Райансу ответят:
Однажды я добавил следующее к features/support/env.rb
(работает из каталога базовых рельсов):
Before do
@dirs = [File.expand_path(File.dirname(__FILE__) + '/../../../aruba_test_dir')]
end
Так что cucumber строит приложение вне текущего приложения rails, это решает проблему.
1 ответ
Мои первые мысли: я думаю, что могло бы быть причиной этого, если бы Rails не был внутри вашего пакета. Но ты выглядишь как умный человек, и поэтому я попытался повторить твой пример и обнаружил, что я получил то же самое.
Озадаченный, я убедился, что получаю вывод:
Scenario: title
Given I run "rails new test_app"
Then the output should contain:
"""
app/mailers
"""
And I cd to "test_app"
Оказывается, просто наблюдая, что на выходе содержатся приложения / почтовые программы, что этот процесс работает. Это очень количественно и, скорее всего, ошибка в Aruba или Rails. Я не уверен, какой.