如何在运行每个测试用例时卸载并重新安装应用程序

时间:2012-12-27 05:26:13

标签: android unit-testing junit4 uninstall

我正在使用junit来测试我的Android应用程序。在TestCase1.java中,我点击“同意”按钮接受协议,然后断言一些可能性。

在下一个TestCase2.java中,我想点击“同意”按钮并断言一些可能性。

每次运行测试用例时,我都必须卸载应用程序并重新安装。如果我运行整个包,大多数情况都会失败,因为我正在重复相同的路径。

示例代码。
TestCase1.java

  @Test
  public void testdA_Case2() throws Exception {
  solo.assertCurrentActivity("my test  active", Myproj.class);
    solo.clickOnButton("I Agree");
    assertEquals(Getresponce(),"1");
}

TestCase2.java

 @Test
  public void testdA_Case2() throws Exception {
  solo.assertCurrentActivity("my test  active", Myproj.class);  
  solo.clickOnButton("I Agree");
    assertEquals(register(), true);`

如何运行测试以便应用程序应在每个测试用例之前重新安装。如何自动化它。 (我尝试清除应用程序数据,然后尝试使用Uri卸载

packageURI = Uri.parse("package:"+"myproj.com");
        Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        ctx.startActivity(uninstallIntent);
    `  But my test stops running if I tried this.

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

看起来您无法在测试用例中重新安装apk,因为它们都在应用程序中运行。

但您可以从外部实施所需的流量控制。

从批处理/ shell脚本中,您可以根据需要调用adb install -r ....并运行单独的测试项目。以下是如何运行一个:Running Android Junit tests from command line