unittest工作流程解析
unittest除去main外,还有以下这些核心组件:
- loader : 加载器,用于从各种环境中加载测试
- runner : 执行器,用于执行测式
- suite : 测试套件,可以包含多个用例和套件
- case : 测试用例,测试的基本单元
- result : 测试结果,用来存放测试的结果
其大致工作原理是先由loader从环境中加载测试对象构建为suite,再由runner去执行suite,runner执行时首先会创建一个result对象,然后对suite不断迭代直致迭代对象为case时则执行case.run方法,最终将结果存放在result对象中。
下两图为个人理解而画的流程图,图一简略,图二则指出了各组件的工作时机作用。
图一:
图二
了解unittest的工作流程对我们解析其源码以及运用它进行测试都有很大的帮助。