获取“错误的参数类型 Fixnum(预期字符串)(TypeError)”,而 运行 Cucumber 在遇到 Capybara 函数时进行测试

Getting " wrong argument type Fixnum (expected String) (TypeError)" while running the Cucumber tests whenever it encounters the Capybara function

我正在尝试在我的功能测试中使用水豚,但我一直收到上述错误。但是,当涉及非 Capybara 函数时,我的测试有效。

这是我的 env.rb 中的设置:

    Capybara.server_host = 45454
    #Capybara.server_host = host
    Capybara.app_host = 'http://localhost:45454'
    Capybara.default_driver = :poltergeist

还为 Phantomjs 设置了 PATH 变量

以下是我遇到问题的步骤定义文件。

   Given(/^I navigate to home page$/) do 
     visit '/'
   end

  And /^I take screenshot$/ do
    page.save_screenshot
  end

以下是功能文件

 Scenario: To validate the page shows up
   Given I navigate to home page
     And I take screenshot

这是输出:

 Scenario: To validate the page shows up←[90m # features/home.feature:8←[0m
 ←[31mGiven I navigate to home page←[90m         # features/step_definitions/
 home_steps.rb:8←[0m←[0m
 ←[31m      wrong argument type Fixnum (expected String) (TypeError)←[0m
 ←[31m      ./features/step_definitions/home_steps.rb:9:in `/^I navigate to 
 home
 page$/'←[0m
 ←[31m      features/home.feature:9:in `Given I navigate to home page'←[0m
 ←[36mAnd I take screenshot←[90m                 # features/step_definitions/
  home_steps.rb:12←[0m←[0m
 ←[31m      wrong argument type Fixnum (expected String) (TypeError)←[0m

 ←[31mFailing Scenarios:←[0m
  ←[31mcucumber features/home.feature:8←[0m←[90m # Scenario: To validate the 
 page
 shows up←[0m

 1 scenario (←[31m1 failed←[0m)
 2 steps (←[31m1 failed←[0m, ←[36m1 skipped←[0m)
  0m0.649s

Capybara.server_host 需要是 Capybara 可以将 AUT 绑定到的接口的 hostname/ip,而不是数字。

您可能正在尝试设置端口,这将是

Capybara.server_port = 45454

然后根据您设置的 app_host 判断(这可能不是必需的)您还想设置

Capybara.server_host = 'localhost'