Я только что выпустил гем на github и написал тест на интеграцию с гемом aruba. Однако я не могу запустить функции, потому что они ведут себя не так, как командная строка.
Если я запускаю функции, рельсы не могут найти мой генератор, если я повторяю те же шаги в командной строке, они работают без сбоев.
Это ошибочная функция
Background: A new rails application has been created with my gem
Given a rails application named "my_app" exists
And this gem is installed in that application
@announce
Scenario: Installation using default values
When I successfully run `rails generate google_authentication:install`
# this is needed because rails g returns 0 when can't find the generator
And the output should not contain "Could not find generator"
И это код, который реализует фоновые шаги
Given /^a rails application named "([^\"]*)" exists$/ do |app_name|
@app_name = app_name
Given "I successfully run `rm -rf #{app_name}`" # added to ensure that the working directory is clean
And "a directory named \"#{app_name}\" should not exist"
And "I successfully run `rails new #{app_name}`"
And "I cd to \"#{app_name}\""
end
When /^this gem is installed in that application$/ do
gempath = File.expand_path('../../../', __FILE__)
Given "I append to \"Gemfile\" with \"gem 'gem-name', :path => '#{gempath}'\""
And "I successfully run `bundle check`"
end
Я попытался отладить и обнаружил, что если я изменил команду bundle check
с помощью bundle install
и перехватил вывод, мой драгоценный камень не будет указан в комплекте. Как следствие, если я напишу шаг rails g --help
, мой генератор не будет там. Как бы то ни было, есть gem и генераторы devise (devise указан как требование в моем gem. Поэтому кажется, что bundler / rails не загружает все внутри шагов aruba.
Я думаю, что это ошибка с Aruba или Bundler, я открыл проблему для aruba , но до сих пор нет ответов.
Полный код включен Github
Последнее, что я уже видел и попробовал это решение но безуспешно