框架的英文单词是"Framework",框架是未解决一个或一类问题而开发的产品,用户一般只需要使用框架提供的类或函数,便可实现全部功能.
从这里开,unittest框架主要用于测试用例的组织和执行,以及测试结果的生成.
主要任务是帮测试人员完成测试工作,所以通常称他为测试框架
unittest核心要素
核心的五个要素: TestCase,TestSuite,TextTestRunner,Fixture
1.TestCase
一个TestCase就是一个测试用例。
一个测试用例就是一个完整的测试流程,包括测试前环境准备(SetUp),执行测试代码(run),以及测试后环境的还原(tearDown)。
一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。用户定义测试用例需要继承TestCase类。
2.TestSuite()
TestSuite()就是测试用例集合。
通过addTest()方法手动把TestCase添加到TestSuite,也可以通过TestLoader把TestCase自动加载到TestSuite,但没有顺序。
TestSuite可以嵌套TestSuite。
3.TextTestRunner
TestTestRunner是运行测试用例的驱动类,其中的run方法可以执行TestCase、TestSuite。
4.TextTestResult
测试用例的执行结果会保存到TextTestResult中,包括执行了多少用例,成功了多少,失败了多少等信息
5.Fixture
对一个测试用例环境的搭建和销毁,就是一个Fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。
比如在测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接并进行初始化。如测试用例需要登录web,可以先实例化浏览器。
测试用例执行后需要还原环境。比如在tearDown()中需要清除在数据库中产生的数据,关闭数据库连接,关闭浏览器。
注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。
unittest工作流程
unittest的整个流程就是首先需要写好TestCase,然后把TestCase添加到TestSuite,然后由TextTestRunner来执行TestSuite,运行的结果保存在TextTestResult中,整个过程集成在unittest.main模块中