我正在为Android应用程序编写自动化ui测试,并且在测试代码中的每次更改之后,我必须执行以下操作:
e:
cd adt/sdk/tools/android create uitest-project -n TestAutomation -t 16 -p c:/Users/John/workspace/TestAutomation
c:
cd ../..
cd: Users/John/workspace/TestAutomation
ant build
adb push c:/Users/John/workspace/TestAutomation/bin/TestAutomation.jar /data/local/tmp/
adb shell uiautomator runtest TestAutomation.jar -c com.uia.example.my.TestApp
有没有办法可以将这些脚本配置为自己一起运行?它很多打字。
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
e:
cd \adt\sdk\tools\android create uitest-project -n TestAutomation -t 16 -p c:\Users\John\workspace\TestAutomation
c:
CD \Users\John\workspace\TestAutomation
CALL ant build
CALL adb push c:\Users\John\workspace\TestAutomation\bin\TestAutomation.jar \data\local\tmp\
CALL adb shell uiautomator runtest TestAutomation.jar -c com.uia.example.my.TestApp
GOTO :EOF
您应该能够将此文件简单地保存为 whatever.bat ,然后只需执行任何。使用编辑器,而不是文字处理器。
请注意,路径分隔符为\
,而不是/
我不知道adb
是什么 - call
应该执行它,无论它是批处理还是可执行。
@ECHO OFF
SETLOCAL
set "instance=%~1"
if not defined instance set /p "instance=What instance ? "
if not defined instance echo no instance set&goto :eof
e:
cd \adt\sdk\tools\android create uitest-project -n %instance% -t 16 -p c:\Users\John\workspace\%instance%
c:
CD \Users\John\workspace\%instance%
CALL ant build
CALL adb push c:\Users\John\workspace\%instance%\bin\%instance%.jar \data\local\tmp\
CALL adb shell uiautomator runtest %instance%.jar -c com.uia.example.my.TestApp
GOTO :EOF
在此示例中,TestAutomation
的每次提及都已被%instance%
替换。
通过运行*thisbatch* TestAutomation
,instance
将设置为值TestAutomation
并在整个过程中替换。
通过运行*thisbatch*
,instance
将被第一个set
命令设置为 nothing (因为没有第一个参数,%1
- 添加的波浪号意味着"并删除任何封闭的引号")因此它将被定义为"未定义"并且set/p
指令允许从键盘输入值。如果未输入任何内容,则程序将报告并终止。
除此之外,按照弹跳球。如果需要,%~2将为其变量提供第二个参数。变量应该以字母开头并包含字母数字+一些特殊字符_#@ $和其他 - 只是不要太聪明。 %var%
访问值集。如果您想在路径名中使用空格,那么"将整个路径名用引号括起来"