unittest
python内置的单元测试框架
nittest 框架构成,最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner。
-
test fixture: 翻译过来是测试固件。
当测试用例每次执行之前需要准备测试环境,每次测试完成后还原测试环境,比如执行前连接数据库、打开浏览器等,执行完成后需要还原数据库、关闭浏览器等操作。这时候就可以启用testfixture。比如你要测试一个接口(但该接口依赖于用户的登录状态),那么你需要先进行登录操作,这个登录活动就相当于准备工作。用于一个测试环境的准备和销毁还原。 -
test case:测试用例。是测试活动的最小单元,它用来检查特定的集合输入,是否达到了预期结果。测试用例继承自unittest.TestCase的类中,测试方法的名称要以test开头。且只会执行以test开头定义的方法(测试用例)。
test suite: 测试套件。是测试用例或者测试套件的一个集合,常用于聚合执行测试用例。
- TestLoadder用来加载TestCase到TestSuite中。
loadTestsFrom*()方法从各个地方寻找testcase,创建实例,然后addTestSuite,再返回一个TestSuite实例。 -
test runner:测试运行器。 协调测试的执行并且给出执行结果。
unittest是Python自带的单元测试框,可以用来作自动化测试框架的用例组织执行框架。优点:提供用例组织与执行方法;提供比较方法;提供丰富的日志、清晰的报告。
大致流程:- 写好TestCase
- 由TestLoader加载TestCase到TestSuite
- 然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中。
通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run()来执行,或者可以直接通过TextTestRunner来执行用例。
在Runner执行时,默认将执行结果输出到控制台,我们可以设置其输出到文件,在文件中查看结果。