由于改革错误,未能运行Rspec:“改进:: Form:Class(NoMethodError)”的“未定义方法`功能”

时间:2017-01-10 08:06:54

标签: ruby-on-rails rspec disposable reform

我只是想尝试运行一些测试,我收到了这个错误:

undefined method `feature' for Reform::Form:Class (NoMethodError)

它发生在/usr/local/bundle/gems/reform-2.2.3/lib/reform/form.rb:75, form.rb中的那一行是第一次使用DSL字feature。 当然,当我运行我的rails应用程序时,这不会发生,但只有当我运行rspec时...

它在改革使用的Disposable gem中定义。起初我认为问题在于旧版本的rspec,但即使在我更新到最新版本之后,事情仍然存在。阅读代码或文档并没有让我知道任何特定的加载行为,这在测试和应用程序运行之间是不同的。

我使用的宝石版本是: rspec-3.3.0,改革-2.2.3,一次性-0.3.2

有没有人有线索?

- 更新 -

删除整个测试框架(删除RSpec并删除所有相关文件)并再次安装后,我发现RSpec本身就在运行,但是当尝试在测试文件中加载我的环境时,它会因同样的错误而失败。

1 个答案:

答案 0 :(得分:0)

嗯,问题是我们加入了改革合同,并没有做得太优雅,因此不需要原始改革合同要求的所有内容。作为修复,我们现在创建了一个基础 从RSpec继承而不是覆盖它的合同现在一切正常。我们在运行Rails c而不是在运行npm install -g node-gyp时找到它的唯一原因是因为事物的加载顺序不同。