Тесты на огурец Аруба (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. Я не уверен, какой.

Другие вопросы по тегам