mud*_*udl 7 ruby-on-rails capybara puma
我正在运行一个非常简单的测试,它需要 javascript,只是为了检查索引加载和元素是否存在,如下所示:
\nclass ProfitsTest < ApplicationSystemTestCase\n setup do\n @admin = users(:admin)\n @admin.confirm\n sign_in @admin\n end\n\n test 'visiting the index' do\n # Index only test\n visit profits_url\n assert_selector 'h1', text: '\xe8\xa8\x88\xe7\xae\x97\xe8\xa1\xa8'\n end\nend\nRun Code Online (Sandbox Code Playgroud)\n我的水豚配置如下(只是删除 Puma 启动日志):
\nrequire 'test_helper'\n\nclass ApplicationSystemTestCase < ActionDispatch::SystemTestCase\n driven_by :selenium, using: :headless_chrome # :chrome\n Capybara.server = :puma, { Silent: true }\n Selenium::WebDriver.logger.ignore(:browser_options)\nend\nRun Code Online (Sandbox Code Playgroud)\n这是我收到的错误:
\n#<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):\n/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)\n\n events = conf.options[:Silent] ? ::Puma::Events.strings : ::Puma::Events.stdio\n ^^^^^^^^\n 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='\n 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'\nE\n\nError:\nProfitsTest#test_visiting_the_index:\nNoMethodError: undefined method `strings' for Puma::Events:Class\n /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>'\n /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='\n /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'\n\nError:\nProfitsTest#test_visiting_the_index:\nNoMethodError: undefined method `strings' for Puma::Events:Class\n /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>'\n /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='\n /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'\n\n\nrails test test/system/profits_test.rb:20\nRun Code Online (Sandbox Code Playgroud)\n我想我有一个错误需要调试,但记录器无法工作?如果我更改Silent: true为Silent: False,它会给我同样的无方法错误stdio。那么 Puma 一定出了什么问题吗?我正在使用 Rails (6.1.7)、puma (6.0.0) 和 capybara (3.37.1)。
我很困惑。
\nCapybara 的发布版本不\xe2\x80\x99t 支持 Puma 6。您可以使用 Capybara 的 master 分支,使用 Puma 5.x,或编写自己的服务器注册配置。
\n| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |