我是一家初创公司的QA。我的开发人员在Android项目中设置了Instrumentation测试。他还设置Jenkins Jobs在CI环境中运行这些测试。
这是在Build - >下的Jenkins作业的“任务”字段中给出的命令。调用Gradle脚本。 clean assembleDebug connectedAndroidTest testDebug
我想创建自己的Jenkins作业来运行不同类型的测试。有没有办法可以通过运行“connectedAndroidTest”命令来过滤我的测试? 我尝试使用如下所示的shell脚本,但它没有用。 adb shell am instrument -w /
我收到以下错误消息: [执行Smoke测试套件] $ / 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:line 2:adb:command not found 构建步骤'执行shell'将构建标记为失败 完成:失败
答案 0 :(得分:18)
似乎你的jenkins用户无法看到android adb,因此构建失败。将adb添加到系统路径或指向它的确切位置。
关于通过gradle命令运行特定测试,下面是一个例子:
./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.android.testing.blueprint.ui.espresso.EspressoTest#testMethodName
从here采取我的轻微修改。您的connectedAndroidtest
命令可能会因测试风味的存在而有所不同。
答案 1 :(得分:0)
这是我在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 - >测试 - >识别TestClass