最近看了下公司使用的 roborframework 源码,整理了些笔记与流程,但是对于 SuiteRunner 的执行完全理不清,也不清楚列出的流程是不是正确。希望有大佬可以指点一下,或者提供一下学习的资料~~
run.py为命令行入口
1. 进入到RobotFramework类,RobotFramework继承自Application,Application中初始化ArgumentParser类,
ArgumentParser类根据USAGE,来提取出所有的选项,长短名称,以及合法性描述
2. 接着RobotFramework类中的_parse_arguments,根据用户在命令行输入的参数,
再加上环境变量,参数文件(如果选项中指定)来初始化所有传入的参数并进行合法性校验
3. 接着RobotFramework类中main函数接受上面产生的传入参数
3.1 使用选项也就是options参数实例化RobotSettings
3.2 使用suitename等参数实例化 TestSuiteBuilder
3.3 调用TestSuiteBuilder.builder,遍历指定目录下所有的文件,按照每个suite解析文件,
返回包含name,source,suites,tests,setup,teardown的实例
3.4 suite.config配置suite的属性,标签,过滤用例等
3.5 suite.run 在log锁的控制下,初始化SuiteRunner,
并按 suite.setup, test.setup,test.body,test.teardown,suite.teardown的顺序执行用例
4. 执行结果实例化ResultWriter,并通过write_results接口根据传入的选项配置输出