python unittest框架的使用&解析
2017-08-22 18:59
941 查看
学习unittest时,掉进一个坑,在官网上未找到解释,google了很多大牛的文章,才绕过去。也因为如此,才知道很多人已经对unittest做了详细而又深入的说明,需要的时候拿来看就好,我这个小渣渣还要不要写呢~~~
要写要写,自己写的东西以后翻看也一目了然。
————————我是分割线———————–
unittest也叫PyUnit,是Python版的Junit(Java),贴一个例子:
文件名:unit_learn.py
运行结果:
测试用例是以“test”开头的方法。
unittest框架进行单元测试的过程:TestLoader类加载写好的测试用例(以”test”开头的方法)到一个测试套件中(TestLoader类加载完毕后返回所有的用例到一个testsuite),然后再调用unittest的runner执行测试用例
固件fixture
setUp()与tearDown()这两个方法是unittest.Testcase()类下的两个方法,前者可定义测试用例公用的东西,测试用例执行完后,可用tearDown()来进行剩下的公共的步骤。
测试用例testcase
以test开头的方法,即方法名的前缀有“test”,这个是TestLoader类中定义的,如下:
源代码loader.py
上例中有两个测试用例:test_print_a()和test_print_b()
测试套件testsuite
上面例子中用unittest.main()方法就可以执行上面两个用例,是因为这个方法是以命令行的方法将模块转换成测试脚本并执行,main()方法也是使用unittest.TestLoader类来自动查找和加载模块内测试用例。TestLoader类生成的测试用例默认是以测试用例的名称来排序的。
也可以直接将测试用例直接写入测试套件中,也可以通过写入测试套件中的顺序来改变测试用例执行的顺序:
测试执行testrunner
测试套件和测试执行要放在另外一个文件中,举例:
runtest.py
运行结果:
References
https://docs.python.org/2/library/unittest.html
http://pyunit.sourceforge.net/pyunit_cn.html
要写要写,自己写的东西以后翻看也一目了然。
————————我是分割线———————–
unittest也叫PyUnit,是Python版的Junit(Java),贴一个例子:
文件名:unit_learn.py
class DefaultTestCase(unittest.TestCase): def setUp(self): print "Start to run" def tearDown(self): print "Close" class TestDefaultTestCase(DefaultTestCase): def test_print_b(self): print 'b' def test_print_a(self): print 'a' if __name__ == '__main__': unittest.main()
运行结果:
测试用例是以“test”开头的方法。
unittest框架进行单元测试的过程:TestLoader类加载写好的测试用例(以”test”开头的方法)到一个测试套件中(TestLoader类加载完毕后返回所有的用例到一个testsuite),然后再调用unittest的runner执行测试用例
固件fixture
setUp()与tearDown()这两个方法是unittest.Testcase()类下的两个方法,前者可定义测试用例公用的东西,测试用例执行完后,可用tearDown()来进行剩下的公共的步骤。
测试用例testcase
以test开头的方法,即方法名的前缀有“test”,这个是TestLoader类中定义的,如下:
源代码loader.py
class TestLoader(object): """ This class is responsible for loading tests according to various criteria and returning them wrapped in a TestSuite """ testMethodPrefix = 'test' sortTestMethodsUsing = cmp suiteClass = suite.TestSuite
上例中有两个测试用例:test_print_a()和test_print_b()
测试套件testsuite
上面例子中用unittest.main()方法就可以执行上面两个用例,是因为这个方法是以命令行的方法将模块转换成测试脚本并执行,main()方法也是使用unittest.TestLoader类来自动查找和加载模块内测试用例。TestLoader类生成的测试用例默认是以测试用例的名称来排序的。
也可以直接将测试用例直接写入测试套件中,也可以通过写入测试套件中的顺序来改变测试用例执行的顺序:
test_cases = [TestDefaultTestCase("test_print_b"), TestDefaultTestCase("test_print_a")] test_suite.addTests(test_cases)
测试执行testrunner
run_cases = unittest.TextTestRunner() run_cases.run(test_suite)
测试套件和测试执行要放在另外一个文件中,举例:
runtest.py
import unittest from learn_unit import TestDefaultTestCase if __name__ == '__main__': suite = unittest.TestSuite() test_cases = [TestDefaultTestCase("test_print_b"), TestDefaultTestCase("test_print_a")] suite.addTests(test_cases) runner = unittest.TextTestRunner(verbosity=2) runner.run(suite)
运行结果:
References
https://docs.python.org/2/library/unittest.html
http://pyunit.sourceforge.net/pyunit_cn.html
相关文章推荐
- Python单元测试框架unittest使用方法讲解
- Python之使用unittest框架和HTMLTestRunner.py文件实现多个测试用例执行与测试报告生成
- Python单元测试框架使用unittestpyUnit
- python单元测试之unittest框架使用总结
- Python单元测试框架unittest使用方法讲解
- python unitTest使用框架
- Python单元测试框架unittest使用方法讲解
- python unittest使用技巧
- Python中使用unittest做UT
- Python之自动单元测试之一(unittest使用实例)
- 【python】python的unittest使用
- python单元测试框架unittest简介
- 使用unittest测试框架来写selenium的TestCase
- Python Unittest 自动化单元测试框架Demo
- Python中的测试模块unittest和doctest的使用教程
- python unittest框架
- selenium-webdriver(python) (十六) --unittest 框架
- python unittest TestCase间共享数据(全局变量的使用)
- python unittest 3- 框架Nose
- Python单元测试框架unittest测试过程简介