@songying
2018-07-02T16:21:09.000000Z
字数 1094
阅读 1207
unittest
参考: https://blog.csdn.net/huilan_same/article/details/52944782
首先,四大概念: TestCase, TestSuite, TestRunner, TestFixture。
TestCase: 一个TestCase就是一个独立的测试单元。这个单元中包含完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。
TestSuite: 将多个 TestCase , TestSuite 集合在一起就是TestSuite
TestRunner: 用于执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。
测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。text fixture: 表示测试用例环境的搭建或销毁
一个class继承了unittest.TestCase,便是一个测试用例,但如果其中有多个以 test 开头的方法,那么每有一个这样的方法,在load的时候便会生成一个TestCase实例,如:一个class中有四个test_xxx方法,最后在load到suite中时也有四个测试用例。
写好TestCase,然后由TestLoader加载TestCase到TestSuite,然后由TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中,我们通过命令行或者unittest.main()执行时,main会调用TextTestRunner中的run来执行,或者我们可以直接通过TextTestRunner来执行用例。
注意:在Runner执行时,默认将执行结果输出到控制台,我们可以设置其输出到文件,在文件中查看结果。
添加到TestSuite中的case是会按照添加的顺序执行的。