当我准备运行一个简单的葫芦测试时,我总是会遇到一个httpclient::keepalivedisconnected异常。
控制台输出:

Feature: Login
  As a User i want to have access to my account

  Scenario: right credentials          # features\login.feature:4
1698 KB/s (567017 bytes in 0.326s)
1596 KB/s (1481497 bytes in 0.906s)
    Given I am at the login page       # features/step_definitions/login.rb:1
    When I enter my username           # features/step_definitions/login.rb:5
    And I enter my password            # features/step_definitions/login.rb:10
    And I hit the Sign In button       # features/step_definitions/login.rb:15
      **HTTPClient::KeepAliveDisconnected: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. (HTTPClient::KeepAliveDisconnected)**
      ./features/step_definitions/login.rb:16:in `/^I hit the Sign In button$/'
      features\login.feature:8:in `And I hit the Sign In button'
    Then I will see the Dashboard page # features/step_definitions/login.rb:19

  Scenario: wrong credentials          # features\login.feature:11
    Given I am at the login page       # features/step_definitions/login.rb:1
    When I enter a wrong username      # features/step_definitions/login.rb:24
    And I enter a wrong password       # features/step_definitions/login.rb:29
    And I hit the Sign In button       # features/step_definitions/login.rb:15
    Then I will stay at the login page # features/step_definitions/login.rb:34

步骤定义:
Given(/^I am at the login page$/) do
  query("* id:'email_sign_in_button'")
end

When(/^I enter my username$/) do
  touch("* id:'email'")
  query("* id:'email'",{:setText => "admin@mapit.com"})
end

When(/^I enter my password$/) do
  touch("* id:'password'")
  query("* id:'password'",{:setText => "admin"})
end

When(/^I hit the Sign In button$/) do
   touch("* id:'email_sign_in_button'")
end

Then(/^I will see the Dashboard page$/) do
   query("* text:'Dashboard'")
   sleep(3)
end

When(/^I enter a wrong username$/) do
  touch("* id:'email'")
  query("* id:'email'",{:setText => "ich bin cool"})
end

When(/^I enter a wrong password$/) do
  touch("* id:'password'")
  query("* id:'password'",{:setText => "hululu"})
end

Then(/^I will stay at the login page$/) do
  query("* id:'email_sign_in_button'")
  sleep(3)
end

我在运行ruby v2.0.0
为什么“我按了登录按钮”这一步在第一个场景中失败,而在第二个场景中失败?

最佳答案

这可能意味着你的应用程序崩溃了。有关stacktrace,请参阅adb日志。
不建议使用query("* id:'email'",{:setText => "admin@mapit.com"})。使用方法enter_text("* id:'email'", "admin@mapit.com")

10-01 06:58
查看更多