我正在运行一个非常简单的测试,它需要使用Java脚本,仅是为了判断索引加载,就会发现有一个元素,类似于:

class ProfitsTest < ApplicationSystemTestCase
  setup do
    @admin = users(:admin)
    @admin.confirm
    sign_in @admin
  end

  test 'visiting the index' do
    # Index only test
    visit profits_url
    assert_selector 'h1', text: '計算表'
  end
end

我对水豚的配置如下所示(只是go 掉了美洲狮的 bootstrap 日志(log)):

require 'test_helper'

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :headless_chrome # :chrome
  Capybara.server = :puma, { Silent: true }
  Selenium::WebDriver.logger.ignore(:browser_options)
end

下面是我得到的错误:

#<Thread:0x000000010f82b2d8 /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/server.rb:76 run> terminated with exception (report_on_exception is true):
/Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/registrations/servers.rb:32:in `block in <main>': undefined method `strings' for Puma::Events:Class (NoMethodError)

  events = conf.options[:Silent] ? ::Puma::Events.strings : ::Puma::Events.stdio
                                                 ^^^^^^^^
    from /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/config.rb:64:in `block in server='
    from /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/server.rb:77:in `block in boot'
E

Error:
ProfitsTest#test_visiting_the_index:
NoMethodError: undefined method `strings' for Puma::Events:Class
    /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/registrations/servers.rb:32:in `block in <main>'
    /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/config.rb:64:in `block in server='
    /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/server.rb:77:in `block in boot'

Error:
ProfitsTest#test_visiting_the_index:
NoMethodError: undefined method `strings' for Puma::Events:Class
    /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/registrations/servers.rb:32:in `block in <main>'
    /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/config.rb:64:in `block in server='
    /Users/cody/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.37.1/lib/capybara/server.rb:77:in `block in boot'


rails test test/system/profits_test.rb:20

我想我有一个错误要调试,但记录器不工作?如果我将Silent: true更改为Silent: False,则会给出与stdio相同的No方法错误.所以彪马一定是出了什么问题?我使用的是rails(6.1.7)、美洲狮(6.0.0)和水豚(3.37.1).

我被难住了.

推荐答案

Capybara的发布版本不支持Puma 6.您可以使用Capybara的主分支,使用Puma 5.x,或编写您自己的服务器注册配置.

Ruby-on-rails相关问答推荐

将会话_store 与:active_record一起使用

Rails 7.1,登录到STDOUT和LOG/Production.log

如何判断字符串中是否包含列值

Sweet Alert 2 在 Rails 7 应用程序中无法正常工作

Ruby on Rails/Activerecord 排序自引用查询?

如何在 Rails 3 中使用 Capybara 单击具有相同文本的第二个链接?

禁用冻结字符串文字注释判断

Rails cron 与时俱进,设置环境

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

我如何存根 find_each 以在 rails 3 中进行 rspec 测试

什么是 Ruby 中的 Python 文档字符串?

mongoid 中 embeds_many 和 has_many 的区别

Rails:使用 link_to 创建不带 href 的链接

Rails 3.1 插件 gem、虚拟测试应用程序、rspec

如果缺少翻译,则回退到默认语言

如何在 ROR (Ruby) 中显示 PDF?

强参数需要多个

Heroku Postgres 错误:PGError:错误:关系组织不存在(ActiveRecord::StatementInvalid)

:javascript haml 标签中的内联Ruby ?

rake db:回滚不起作用?