Ruby on rails 无法加载这样的文件--capybara/minitest
希望有人能帮我。我确实搜索过,但没有找到任何有效的解决方案 我已经开始为一个应用程序编写测试。我的集成测试运行得很好,但后来我决定,因为我没有太多的TDD驱动,而且我现在没有太多的时间来广泛测试我应该使用的应用程序的所有层,而不是Ruby on rails 无法加载这样的文件--capybara/minitest,ruby-on-rails,capybara,minitest,system-testing,Ruby On Rails,Capybara,Minitest,System Testing,希望有人能帮我。我确实搜索过,但没有找到任何有效的解决方案 我已经开始为一个应用程序编写测试。我的集成测试运行得很好,但后来我决定,因为我没有太多的TDD驱动,而且我现在没有太多的时间来广泛测试我应该使用的应用程序的所有层,而不是integrationtestssystemtests,因为它们允许我像在浏览器中一样测试整个流程 Rails 5.1.2 Gemfile (尝试了不同的变化,只是水豚,然后结合其他两种) test_helper.rb 应用程序\系统\测试\案例.rb 完整跟踪添加了以
integration
testssystem
tests,因为它们允许我像在浏览器中一样测试整个流程
Rails 5.1.2
Gemfile
(尝试了不同的变化,只是水豚,然后结合其他两种)
test_helper.rb
应用程序\系统\测试\案例.rb
完整跟踪添加了以下内容:
LoadError: cannot load such file -- capybara/minitest
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `block in require'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:258:in `load_dependency'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-5.1.2/lib/action_dispatch/system_test_case.rb:2:in `<top (required)>'
/Users/mnussbaumer/code/dvouch/test/application_system_test_case.rb:3:in `<top (required)>'
我试过用宝石:
group :development, :test do
gem 'minitest-rails'
gem 'minitest-capybara'
gem 'capybara'
end
然后使用'minitest-rails-capybara'
感谢文件
capybara/minitest
在版本2.13.0中添加到了capybara,这是Rails自5.1.0以来系统测试所需的最低版本。升级至Capybara(2.14.4)的最新版本,不需要minitest Capybara
或minitest rails
gems。您还需要将“selenium webdriver”gem添加到您的测试组中
此外,
assert\u response:success
行在Capybara测试中无效,因为Capybara使用的浏览器HTTP响应代码通常不可用。文件Capybara/minitest
已在版本2.13.0中添加到Capybara,这是自Rails 5.1.0以来Rails系统测试所需的最低版本。升级至Capybara(2.14.4)的最新版本,不需要minitest Capybara
或minitest rails
gems。您还需要将“selenium webdriver”gem添加到您的测试组中
此外,
assert\u response:success
行在Capybara测试中无效,因为浏览器Capybara使用的HTTP响应代码通常不可用。您使用的是哪一版本的Capybara?Capybara(2.6.2)@ThomasWalpoleRails 5.1系统测试至少需要2.13.0(最好使用最新版本(2.14.4)然后应该不再需要minitest-capybara
或minitest-rails
gems-您将需要'selenium-webdriver'作为默认设置,但谢谢@ThomasWalpole,解决了这个问题,只需添加chromedriver-afterwars和所有工作。请添加它作为答案,我会接受。是的,断言响应是无用的。顺便说一句,也许你也可以告诉我你的看法,使用selenium而不是无头浏览器有什么重要的原因吗?我只运行了这4行代码,就好像eternitySelenium运行的是一款现代浏览器,没有任何无头浏览器驱动程序(capybara webkit,poltergeist)现在支持ES5之外的任何东西,还有一些其他限制(视频、音频等)。因此,使用selenium更“正确”用户的表示。您现在也可以使用headless Chrome运行selenium,虽然速度还没有提高很多,但希望在将来会提高。此外,运行一个测试会有很多开销,当您进行多个测试时,这些开销会分期偿还。您使用的是什么版本的Capybara?Capybara(2.6.2)@ThomasWalpoleRails 5.1系统测试至少需要2.13.0(最好使用最新版本(2.14.4))然后应该不再需要minitest-capybara
或minitest-rails
gems-您将需要'selenium-webdriver'作为默认设置,但谢谢@ThomasWalpole,解决了这个问题,只需添加chromedriver-afterwars和所有工作。请添加它作为答案,我会接受。是的,断言响应是无用的。顺便说一句,也许你也可以告诉我你的看法,使用selenium而不是无头浏览器有什么重要的原因吗?我只运行了这4行代码,就好像eternitySelenium运行的是一款现代浏览器,没有任何无头浏览器驱动程序(capybara webkit,poltergeist)现在支持ES5之外的任何东西,还有一些其他限制(视频、音频等)。因此,使用selenium更“正确”用户的表示。您现在也可以使用headless Chrome运行selenium,虽然速度还没有提高很多,但希望将来能提高。另外,运行一个测试会有很多开销,当您进行多个测试时,这些开销会分摊。谢谢,如果您愿意分享您对使用selenium或Headle的看法,我添加了一条评论如果您愿意分享您对使用硒或无头硒的看法,如poltergeist/cb webkit,我将不胜感激
require "test_helper"
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
end
require "application_system_test_case"
class RegisterLoginsTest < ApplicationSystemTestCase
test 'full login flow' do
visit root_url
assert_response :success
find('.email_link').click
end
end
LoadError: cannot load such file -- capybara/minitest
/Users/mnussbaumer/code/dvouch/test/application_system_test_case.rb:3:in `<top (required)>'
/Users/mnussbaumer/code/dvouch/test/system/register_logins_test.rb:1:in `<top (required)>'
Tasks: TOP => test:system
(See full trace by running task with --trace)
LoadError: cannot load such file -- capybara/minitest
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `block in require'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:258:in `load_dependency'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.1.2/lib/active_support/dependencies.rb:292:in `require'
/Users/mnussbaumer/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-5.1.2/lib/action_dispatch/system_test_case.rb:2:in `<top (required)>'
/Users/mnussbaumer/code/dvouch/test/application_system_test_case.rb:3:in `<top (required)>'
require "capybara/rails"
require "minitest/rails"
require "minitest/rails/capybara"
group :development, :test do
gem 'minitest-rails'
gem 'minitest-capybara'
gem 'capybara'
end