一、简介
unittest是python中自带的一个单元测试模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。
二、unittest内部方法
1.TestCase:所有测试用例的基本类,给一个测试方法的名字,就会返回一个测试用例实例,用例名称必须以test开头;testq 可以 wtest不可以,test_可以,一个TestCase,就是一个测试用例,什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。通过运行这个测试单元,可以对某一个问题进行验证
2.unittest.TestSuit()类:多个测试用例集合在一起,就是测试套件或叫测试计划,addTest()方法是将测试用例添加到测试套件中而且TestSuite也可以嵌套
3. TextTestRunner():是来执行测试用例的,通过该类的run(test)方法执行suite所组装的测试用例,入参为suite测试套件。其中Text的意思是以文本形式显示测试结果。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
4.unittest.defaultTestLoader(): defaultTestLoader()类:通过该类下面的discover()方法可自动更具测试目录start_dir匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件,因此可以直接通过run()方法执行discover。
5. TestLoader:用来加载TestCase到TestSuite中的,其中 loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。
6.TestLoader(defaultTestLoader)是unittest的测试用例加载器,它包括多个加载测试用例的方 法。它的结果是返回一个测试套件
7.Test fixture:一个测试用例的初始化准备及环境还原,主要是setUp() 和 setDown()方法:比如说在这个测试用例中需要访问数据库,那么可以在setUp()中建立数据库连接以及进行一些初始化,在tearDown()中清除在数据库中产生的数据,然后关闭连接。注意tearDown的过程很重要,要为以后的TestCase留下一个干净的环境。
三、工作原理
通过unittest类调用分析,可将框架的工作流程概况如下:
编写TestCase,由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite, 最后将运行的结果保存在TextTestResult中、
四、测试举例
测试用例方法是以test开头作为标识,用例的执行结果以assetxxx断言结果
决定,如果断言返回为false,将抛出assetError异常。测试用例代码如下: