Calabash保存登录凭据

时间:2015-04-30 13:31:43

标签: calabash calabash-android

我有一台Android设备连接到我的电脑。 运行calabash测试我使用以下命令:

calabash-android run <NAME>.apk features/<NAME>.feature

每次我再次运行时,我都必须重新登录我的应用程序,因为凭据未存储。

任何帮助将不胜感激!

谢谢!

3 个答案:

答案 0 :(得分:3)

最有可能的是,在重新安装应用时,凭据不会被存储。一旦你为这些测试关闭重新安装就应该没问题。

答案 1 :(得分:2)

你跑的时候

calabash-android run <NAME>.apk features/<NAME>.feature

您之前的应用将被卸载&amp;将安装新的应用程序。

但是,您可以尝试使用

来处理此方案

看看

features/support/app_installation_hooks.rb 

您可以删除整个

"Before scenario" hook 

因为所有它需要处理的是重新安装被测试的应用程序和测试应用程序。您可以删除该代码并重试。

答案 2 :(得分:0)

如果您以这种方式更改 app_life_cycle_hooks.rb ,则每次执行测试时都可以避免重新安装应用:

Before do |scenario|
  scenario_tags = scenario.source_tag_names

  if scenario_tags.include?('@first')

    if scenario_tags.include?('@reinstall')
      uninstall_apps
      install_app(ENV['TEST_APP_PATH'])
      install_app(ENV['APP_PATH'])
    end

    start_test_server_in_background

  end

end

现在,您可以在方案中使用标记来决定何时start_test_server_in_background以及何时重新安装应用程序。例如,您可以这样做:

@first @reinstall @test1
  Scenario: Run application reinstalling the app
    Given lorem ipsum
    When lorem ipsum
    Then lorem ipsum

  @first @test2
  Scenario: Run application WITHOUT reinstalling the app
    Given lorem ipsum
    When lorem ipsum
    Then lorem ipsum

  @test1 @test2
  Scenario: Other scenario without relaunching app
    Given lorem ipsum
    When lorem ipsum
    Then lorem ipsum

如果使用@ test1标记启动测试,calabash将执行方案1和3,并且将重新安装该应用程序。如果您使用@ test2标签启动,则会启动方案2和3,而无需重新安装应用程序。