connectedAndroidTest如何运行具体测试

connectedAndroidTest how to run specific tests

我是一家初创公司的 QA。我的开发人员在 Android 项目中设置了 Instrumentation 测试。他还设置了 Jenkins Jobs 以在 CI 环境中 运行 这些测试。

这是 Jenkins 作业中构建 --> 调用 Gradle 脚本的 "Tasks" 字段中给出的命令。 clean assembleDebug 已连接Android测试 testDebug

我想创建自己的 Jenkins 作业来 运行 不同类型的测试。有没有一种方法可以仅通过 运行ning "connectedAndroidTest" 命令来过滤我的测试? 我尝试使用 shell 脚本,如下所示,但没有用。 adb shell am instrument -w /

我收到以下错误消息: [执行烟雾测试套件] $ /bin/bash -xe /var/folders/qr/vtm32_d56vz0hgwg5ppdbswc00007q/T/hudson1779650135635362469.sh + adb shell am instrument -w ' ' class com.draysonwireless.airmapandroid.rewards/BonusTest.java /var/folders/qr/vtm32_d56vz0hgwg5ppdbswc00007q/T/hudson1779650135635362469.sh: 第 2 行:adb: 未找到命令 构建步骤 'Execute shell' 将构建标记为失败 已完成:失败

您的 jenkins 用户似乎看不到 android adb,因此构建失败。将 adb 添加到系统路径或指向它的确切位置。

至于运行通过gradle命令的具体测试,下面是一个例子:

./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.android.testing.blueprint.ui.espresso.EspressoTest#testMethodName

摘自 here,稍作修改。您的 connectedAndroidtest 命令可能会根据测试风味的存在而有所不同。

这是我在 Jenkins 作业中使用的 shell 脚本:

export PATH=$PATH:/Users/Shared/Jenkins/Library/Android/sdk/platform-tools
adb shell am instrument -w -r   -e debug false -e class com.company.project.test.SmokeTest com.company.project.debug.test/android.support.test.runner.AndroidJUnitRunner

文件夹结构应该如下: app --> src--> androidTest --> java --> com.company.project --> test --> TestClass