在我的黄瓜场景中,如果我在目标Rails应用程序文件夹内调用
结果是我会得到以下错误:
正常工作 -> 'rake -T'具有基于应用程序自己的Gemfile的$LOAD_PATH; 不会生成上述错误。
有人能想到为什么子进程(通过system,exec,%x[...]或反引号调用的rake - T或rake db:schema:load或rails runner ...)会以父进程的$LOAD_PATH(从cucumber场景的Gemfile)开始,而不是其自己的$LOAD_PATH(来自Rails应用程序的Gemfile)吗?
rake db:schema:load
,那么我会得到黄瓜进程的$LOAD_PATH,而不是Rails应用程序自己的Gemfile/load path。我认为这非常奇怪。结果是我会得到以下错误:
no such file to load -- rails/all
我无法在我的cucumber场景之外重现它。
ruby -rubygems -e "system 'rake -T'"
正常工作 -> 'rake -T'具有基于应用程序自己的Gemfile的$LOAD_PATH; 不会生成上述错误。
有人能想到为什么子进程(通过system,exec,%x[...]或反引号调用的rake - T或rake db:schema:load或rails runner ...)会以父进程的$LOAD_PATH(从cucumber场景的Gemfile)开始,而不是其自己的$LOAD_PATH(来自Rails应用程序的Gemfile)吗?
config/boot.rb
中设置了ENV['BUNDLE_GEMFILE']
,即使使用Bundler.with_clean_env
也无法捕获它。 - wuputah