3, RunTestCommand
RunTestCommand的main方法如下
@Override
public void run(String[] args) {
int ret = parseArgs(args);
switch (ret) {
case ARG_FAIL_INCOMPLETE_C:
System.err.println("Incomplete '-c' parameter.");
System.exit(ARG_FAIL_INCOMPLETE_C);
break;
case ARG_FAIL_INCOMPLETE_E:
System.err.println("Incomplete '-e' parameter.");
System.exit(ARG_FAIL_INCOMPLETE_E);
break;
case ARG_FAIL_UNSUPPORTED:
System.err.println("Unsupported standalone parameter.");
System.exit(ARG_FAIL_UNSUPPORTED);
break;
default:
break;
}
if (mTestClasses.isEmpty()) {
addTestClassesFromJars();
if (mTestClasses.isEmpty()) {
System.err.println("No test classes found.");
System.exit(ARG_FAIL_NO_CLASS);
}
}
getRunner().run(mTestClasses, mParams, mDebug, mMonkey);
}
主要分为三个步骤
1,解析输入指令
2,添加测试项
3,开始测试
3.1解析输入指令
parseArgs方法如下
private int parseArgs(String[] args) {
// we are parsing for these parameters:
// -e <key> <value>
// key-value pairs
// special ones are:
// key is "class", parameter is passed onto JUnit as class name to run
// key is "debug", parameter will determine whether to wait for debugger
// to attach
// -c <class na