Calabash 保存登录凭据

Calabash save login credentials

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

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

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

如有任何帮助,我们将不胜感激!

谢谢!

很可能是因为凭据在重新安装应用程序时被擦除而未被存储。重新安装后关闭这些测试应该没问题。

无论你运行

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

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

但是,您可以尝试使用

来处理这种情况

看看

features/support/app_installation_hooks.rb 

您可以删除整个

"Before scenario" hook 

因为它只负责重新安装被测应用程序和测试应用程序。您可以删除该代码并重试。

如果您以这种方式更改 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 将在不重新安装应用程序的情况下启动。