【问题标题】:Android gradle skip build before running test?Android gradle 在运行测试之前跳过构建?
【发布时间】:2023-03-24 08:16:01
【问题描述】:

我想跳过构建过程并在我这样做时直接运行测试

./gradlew connectedDevDebug

我也可以使用 adb 命令,但它一次只能在一个设备上运行测试。

【问题讨论】:

  • 你为什么要跳过Build,那你怎么能得到apk呢?如果默认情况下没有更改,Gradle 将跳过构建。
  • 已使用 ./gradlew iDD iDDAT 安装了 debug 和 debugAndroidTest apk。我只想重新运行测试(没有更改代码)。但是当我做 ./gradlew cDDAT 时,与使用 adb 命令相比,它需要很多时间。这是部分输出, :app:preBuild UP-TO-DATE :app:preDevDebugBuild UP-TO-DATE :app:checkDevDebugManifest :app:preDevReleaseBuild UP-TO-DATE :app:preProdDebugBuild UP-TO-DATE :app:preProdReleaseBuild UP-TO-DATE ... :app:packageDevDebugAndroidTest :app:assembleDevDebugAndroidTest :app:installDevDebug ...
  • 看起来所有构建任务都是最新的,只有 app:checkDevDebugManifest 重新运行。多久时间?如果您运行 cAT,我认为您不能跳过这些步骤,除非您创建自己的仅执行 adb 命令的 gradle 任务。

标签: gradle android-gradle-plugin android-testing


【解决方案1】:

目前没有只运行测试的gradle 任务。

但是一旦您安装(并运行)了测试,您就可以(重新)使用am instrument 命令直接运行它们。要从您的开发机器的命令行启动它们,只需运行:

adb shell am instrument -w <test_package_name>/<runner_class>

您可以从 AndroidStudio 的输出中复制实际命令。只需从 AndroidStudio 运行测试,然后滚动到测试日志视图的顶部即可。

有一个警告,am instrument 不会创建任何测试报告。所有测试结果都写入stdout。但是,您可以将stdout 通过管道传输到文件中并自己创建报告。 IE。 this tool 可以根据am instrument 的输出创建一个xml JUnit 测试报告。

如果您对测试进行了更改,您可以使用以下命令重新构建和安装它们:

./gradlew installDebugAndroidTest

关于从命令行启动测试的详细信息和说明可以参考官方文章Test from the Command Line

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多