葫芦 android - HTTPClient::KeepAliveDisconnected

Calabash android - HTTPClient::KeepAliveDisconnected

当我需要 运行 一个简单的葫芦测试时,我总是 运行 进入 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

为什么"I hit the Sign In button"步骤在第一种情况下失败,但在第二种情况下通过?

这可能意味着您的应用程序崩溃了。查看 adb logcat 以获得堆栈跟踪。

不推荐使用query("* id:'email'",{:setText => "admin@mapit.com"})。使用方法 enter_text("* id:'email'", "admin@mapit.com")