升级到rails 5后无法使用rspec和rollbar。
标准配置/ environment.rb:
# Load the Rails application.
require_relative 'application'
# Initialize the Rails application.
Rails.application.initialize!
运行rspec时出错:
An error occurred while loading {path to specific spec file}
Failure/Error: require File.expand_path('../../config/environment', __FILE__)
RuntimeError:
can't modify frozen Array
# ./config/environment.rb:6:in `<top (required)>'
# ./spec/rails_helper.rb:5:in `<top (required)>'
...
No examples found.
答案 0 :(得分:4)
在大多数情况下,这个错误是其他东西的红色鲱鱼。
遇到问题时,请不要使用重复出现的can't modify frozen Array
错误消息,而是检查运行规范时出现的第一个错误。
例如:
失败/错误:验证:唯一性,如果:&#39; should_be_unique?&#39;
ArgumentError:传递要评估的字符串:if和:unless 不支持条件选项。传递实例的符号 相反,方法,或lambda,proc或block。
答案 1 :(得分:2)
只需在Maxximo Mussini的答案上方添加一个提示。
如果任何人都无法在终端上找到第一个错误,请尝试在一个文件上运行RSpec,即rspec spec/models/user_spec.rb
您应该能够找到根本原因。
就我而言,我尚未更新.env
模型所需的本地User
变量
希望有帮助
答案 2 :(得分:-2)
调试此操作并不容易,但解决方案很简单:在config/application.rb
中围绕应用类定义添加模块(&#34;命名空间&#34;您选择的)。< / p>
该模块不会受到太大影响。我能找到的唯一区别是,在打印出你的应用程序时,它现在将显示为(我们找到修复程序与新工作应用程序的方式):
<MyTestAPP::Application ...>
代替<Application ...>
更改:
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 5.1
end
要:
Module MyTestApp
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 5.1
end
end