为啥 Rspec 找不到 select2 方法?
Posted
技术标签:
【中文标题】为啥 Rspec 找不到 select2 方法?【英文标题】:Why Rspec cannot find the select2 method?为什么 Rspec 找不到 select2 方法? 【发布时间】:2021-11-08 23:21:36 【问题描述】:我刚刚加入了一家新公司,当我在 Rspec 中使用 select2
方法时,我收到以下错误:NoMethodError:undefined method `select2' for...
我们使用'capybara-select-2'
gem。
所以我在 spec_helper.rb 中添加了以下配置:config.include CapybaraSelect2
,它非常有效。问题,当测试被推送到heroku上时,它会引发一个错误:uninitialized constant CapybaraSelect2
。
奇怪的是我的同事使用这种方法不需要添加配置行...
你知道为什么没有它他可以使用它而我不能吗?感谢您的帮助。
【问题讨论】:
【参考方案1】:您的同事可能在某个时候将gem install capybara-select-2
全局安装到他的环境中,而您通过捆绑程序使用它。您应该确保它已包含在您的 gemfile 中的 :test
组中。
话虽如此,我不建议再使用该 gem,它已经多年没有更新了。
【讨论】:
感谢您的回答,托马斯!我们检查了,我们有相同版本的gem 'capybara-select-2'
,它存在于我们的 gemfile 中的:test
中。与您的第二点相关,实际上有两个不同的 gem,其中一个最近(大约一年)更新了,它是由 @Hirurg103 构建的。如果您有其他想法可能会出现此问题,我会全力以赴:)【参考方案2】:
我的 CTO 终于找到了让我的代码正常工作的方法:
我在spec_helper.rb
的末尾调用了config.include CapybaraSelect2
,所以他把它移到rails_helper.rb
中,如下所示:
config.include Devise::Test::IntegrationHelpers
config.include ActiveSupport::Testing::TimeHelpers
config.include ::Passwordless::TestHelpers::SystemTestCase
config.include CapybaraSelect2
现在一切正常!
【讨论】:
以上是关于为啥 Rspec 找不到 select2 方法?的主要内容,如果未能解决你的问题,请参考以下文章
在 Jenkins 上运行时找不到 gem rspec-core (>= 0.a) (Gem::GemNotFoundException)
为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?
为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?
为啥 jQuery 或 getElementById 等 DOM 方法找不到元素?