运行connectedAndroidTest并跳过卸载

时间:2017-12-06 08:42:25

标签: android gradle android-gradle automated-tests

有没有办法调用任务connectedAndroidTest并在流程结束时跳过卸载任务?

在测试执行结束时,应用程序将从设备中卸载,但我希望将应用程序保留在设备上。

来自http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Running-tests

  

如前所述,需要连接设备的检查是使用名为connectedCheck的锚任务启动的。这取决于connectedDebugAndroidTest的任务,因此将运行它。此任务执行以下操作:

     
      
  • 确保构建应用程序和测试应用程序(取决于assembleDebug和assembleDebugAndroidTest)。
  •   
  • 安装两个应用。
  •   
  • 运行测试。
  •   
  • 卸载这两个应用。
  •   

1 个答案:

答案 0 :(得分:4)

查看gradle插件的内容,无法阻止在测试任务结束时卸载应用程序。你可以在{grample插件的SimpleTestCallable类中查看。

从我所看到的,有两种方法可以实现你想要的东西。

首先是在完成连接检查后重新安装应用程序。执行此操作的命令看起来像这样。 ./gradlew connectedCheck installDebug installDebugAndroidTest这将在设备上执行测试并从中删除应用。但之后它将重新安装应用程序和测试应用程序。所以app仍然会被移除然后安装,这意味着有点owerhead但是至少应用程序不会被重新编译两次,因为你在相同的gradle执行中执行。

第二个选项是不使用gradle执行测试,而是使用adb。 要做到这一点,首先需要通过gradle安装app和test app。 ./gradlew installDebug installDebugAndroidTest

之后,您可以通过adb执行测试。通过加密adb shell am instrument -w com.example.test/android.support.test.runner.AndroidJUnitRunner

完成此操作后,您可以运行cli测试,因为仍然安装了应用和测试应用。

使用第二种方法,您将失去执行test wit gradle的所有好处。如代码覆盖和多个程序执行等