如何在calabash测试中从Android设备中删除帐户?

时间:2014-09-15 13:31:11

标签: android calabash

我有一个使用Android's Authenticator机制的应用程序,我需要用Calabash进行测试。我认为要正确测试auth,我应该处理设备中的任何和所有帐户,这样我就可以用干净的石板进行测试。

正在寻找一种方法,我发现使用adb shell pm clear my.package进行清洁可以有效地清除所有数据,因此我将此步骤整合到我的测试中:

Given(/^i am not logged in to the app$/) do
  `#{default_device.adb_command} shell pm clear my.package`
end

这里的问题是这一步实际上是在杀死测试服务器,因为android在清理它之前会杀死它。

这有什么解决方法吗?还有什么我可以用吗?或者我的建议是否存在根本缺陷? - 我刚刚开始使用这个BDD / Calabash。

1 个答案:

答案 0 :(得分:0)

在我的测试中,确保我的应用程序始终在我需要时使用介绍图形启动。我设置了#34; @重新安装"在场景上标记。在app_life_cycle_hooks.rb我有(这可能是我现在无法记住的默认内容)

Before do |scenario|
  scenario_tags = scenario.source_tag_names
  if scenario_tags.include?('@reinstall') || !INSTALLATION_STATE[:installed]
      uninstall_apps
      install_app(ENV['TEST_APP_PATH'])
      install_app(ENV['APP_PATH'])
      INSTALLATION_STATE[:installed] = true
  end
  start_test_server_in_background
end

这意味着在每个场景之前,我的应用程序将从设备/模拟器中删除。 这对你有用吗?