现在我写了一个批处理脚本来运行命令,如:
adb -s emulator-5556 shell am instrument -e class com.example.test.locationListTest -w com.example.test/android.test.InstrumentationTestRun
然后在控制台我得到FAILURE!!! Tests run: 5 fail:4
或OK
的结果。
我使用if errorlevel 0
来确定上面的命令,但无论上面的命令给我,OK或FAILURE,它都给我0。
我需要在批处理脚本中执行此操作:
if(adb -s emulator-5556 shell ..... test.InstrumentationTestRun == SUCCESS )
do (.........)
else (.........)
答案 0 :(得分:0)
试试这个:
@echo off
setlocal
set "adb=adb -s emulator-5556 shell am instrument -e class com.example.test.locationListTest -w com.example.test/android.test.InstrumentationTestRun"
for /f "tokens=*" %%a in ('%adb%^|find /i "Ok"') do (
if not errorlevel 1 (
Echo Success
) else (
echo Failure
)
)
这样,errorlevel将起作用,因为它来自Find。
答案 1 :(得分:0)
if errorlevel 0
永远是真的。
当您使用该样式的线进行测试时,您需要使用if not errorlevel 1
。
答案 2 :(得分:0)
简单的事情如下:
IService
答案 3 :(得分:0)
与其通过adb进行操作,不如通过gradle运行您的仪器测试。
下面是一个执行此操作的示例bash脚本:
#!/bin/bash
CMD="./gradlew connectedAndroidTest"
$CMD
RESULT=$?
if [ $RESULT -ne 0 ]; then
echo "failed $CMD"
exit 1
fi
exit 0