本文档介绍了如何通过命令行直接运行 Android 应用的测试。在您已经了解如何创建 Android 应用并为应用编写测试的前提下,本文将为您提供详细的操作指南。如果您想详细了解如何为应用构建测试,请参阅“在 Android 平台上测试应用”。

当您使用 Gradle 构建系统构建应用时,Android Gradle 插件可让您使用命令行从 Gradle 项目运行测试。此外,您还可以选择通过 Android 调试桥 (adb) shell 运行测试,这在持续集成环境中非常有用。如果您想了解如何使用 Gradle 为您管理的虚拟设备从命令行运行自动插桩测试,请参阅“使用 Gradle 管理的设备来扩展测试”。

以下是使用 Gradle 运行测试的方法:

1. 通过 `./gradlew test` 命令运行单元测试。

2. 通过 `./gradlew connectedAndroidTest` 命令运行连接的 Android 测试。

3. 通过 `./gradlew cAT` 命令运行单元测试和连接的 Android 测试。

4. 通过 `checkconnectedCheck` 命令运行连接的 Android 测试。

5. 在模块上运行特定的测试方法或类,例如:`testconnectedAndroidTesttestconnectedAndroidTestmylibrary`。

6. 在模块上运行特定构建变体下的测试,例如:`./gradlew mylibrary:connectedAndroidTest`。

7. 在所有构建变体上运行单元测试,例如:`./gradlew test`。

8. 在特定构建变体上运行 Android 测试,例如:`./gradlew connected`。

9. 运行特定的测试方法或类,例如:`--tests sampleTestMethod --tests '*.sampleTestMethod'`。

10. 使用 adb 从命令行运行测试,您可以获得比任何其他方法更多的选项来选择要运行的测试。您可以选择单独的测试方法,根据自定义注解筛选测试,或指定测试选项。由于测试任务完全由命令行控制,因此您可以通过各种方式使用 Shell 脚本自定义测试。

db shell aminstrument

am instrument

am instrument

STDOUT

am instrument 标记

am instrument -e package com.android.test.package1,com.android.test.package2 > com/android/test/androidx.test.runner.AndroidJUnitRunner 选项

am instrument

-e <key> <value>

AndroidJUnitRunner包名

adb shell am instrument -w -e package com.android.test.package1,com.android.test.package2 \ > com/android/test/androidx.test.runner.AndroidJUnitRunner

下表列出了可针对测试运行程序使用的键值对:

表3。

可与测试运行程序搭配使用的 -e 标记键值对

package

class

#method namefunctrueunittrueInstrumentationTestCasesizesmallmediumlarge@SmallTest@MediumTest@LargeTestperftruePerformanceTestCaseam instrument-rdebugtruelogtrueSTDOUTemmatrue/data/

/coverage.eccoverageFilecoveragecoverageFile

emma

-e

am instrumentonCreate(Bundle)Bundlepackageclassfuncunit用法示例

am instrument

com.android.demo.app.testsTestClass1testMethod1TestClass2testMethod2testMethod3AndroidJUnitRunner

要运行整个测试软件包,可以输入以下命令:

```adb shell am instrument -w com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner

```

如果要运行测试软件包中的所有测试类,可以输入以下命令:

```adb shell am instrument -w \> -e class com.android.demo.app.tests.TestClass1 \> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner

```

如果只想运行测试用例类中的所有测试,可以使用以下命令,其中`TestClass1`是你要运行的测试类名:

```adb shell am instrument -w \> -e class com.android.demo.app.tests.TestClass1 \> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner

```

如果你只想运行一部分测试,例如`TestClass1TestClass2testMethod3`,可以使用以下命令:

```adb shell am instrument -w \> -e class com.android.demo.app.tests.TestClass1,com.android.demo.app.tests.TestClass2#testMethod3 \> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner

```