在命令行上完成robotium测试后,如何获取退出代码或退出状态

时间:2014-02-28 23:55:42

标签: batch-file command-line cmd robotium exit-code

现在我写了一个批处理脚本来运行命令,如:

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:4OK的结果。

我使用if errorlevel 0来确定上面的命令,但无论上面的命令给我,OK或FAILURE,它都给我0。

我需要在批处理脚本中执行此操作:

if(adb -s emulator-5556 shell ..... test.InstrumentationTestRun == SUCCESS )
do (.........)
else (.........)

4 个答案:

答案 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