【问题标题】:Robotium Android How to stop the app being killed after test completes.?Robotium Android 如何在测试完成后停止应用程序被杀死。?
【发布时间】:2014-09-16 12:19:27
【问题描述】:

通常,当我们运行测试应用程序时,测试完成后会被终止。但就我而言,我正在运行几个后台服务(云同步),所以我不想在服务完成任务之前终止应用程序。

我尝试的是

在拆解中我删除了方法

solo.finishOpenedActivities();和 super.tearDown();

 public void tearDown() throws Exception {
    //solo.finishOpenedActivities();
    //super.tearDown();
}

但它仍然会杀死应用程序。

需要解决方案。

1-> 测试完成后不要杀死应用程序。

或者

2 -> 后台服务完成任务后终止应用。

提前谢谢你。

【问题讨论】:

  • 您希望一项测试在服务存在期间一直运行吗?我猜这会更有意义。
  • 最好的解决方案是solo.waitForCondition()。您的条件的 isSatisfied 方法必须仅在您的服务完成时返回 true。在此处查看您之前问题的答案stackoverflow.com/a/25857889/1664038

标签: android unit-testing robotium


【解决方案1】:

如果您希望一个测试在您的后台服务仍然存在的情况下持续存在,可能需要超时以确保测试始终完成,那么您应该:

  • 在测试中绑定到您的服务
  • 监听服务完成,这意味着您必须能够通过活页夹通知服务的生命周期
  • 当您收到来自服务的事件时解除绑定
  • 您可以使用 CountDownLatch 确保服务在您的测试中正确完成。

【讨论】:

  • 谢谢你,我一定会尝试的。你能告诉我如何在测试完成后停止应用程序被杀死。我的意思是我不想在测试完成后杀死应用程序,这将解决我所有的问题。
  • 我不知道如何使用 Robotium 来做到这一点,我认为这不是一个好习惯。我能给你的最好建议就是我的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-23
  • 1970-01-01
相关资源
最近更新 更多