我有一个使用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。
答案 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
这意味着在每个场景之前,我的应用程序将从设备/模拟器中删除。 这对你有用吗?