单元测试_python_unittest

来源:互联网 发布:国际投资净头寸数据 编辑:程序博客网 时间:2024/05/16 07:43

环境

python2.7


python有多个测试框架,unittest是其中之一

1测试方法必须以test开头,例如def  test_xxx(self)

2如果想运行当前模块所有case

if __name__=="__main__":

    unittest.main()

3如果想运行部分用例,可构造测试集

if __name__=="__main__":

    suite=unittest.TestSuite

    suite.addTest(A('test_xx'))

    suite.addTest(A('test_xxx'))

    runner=unittest.TextTestRunner()

    runner.run(suite)

在实例中,A是类名,test_xx是方法名

4用例数庞大时,在套间中逐个添加方法太慢,可以使用discover

discover(start_dir,pattern='test*.py',top_lever_dir=None)

参数介绍:

start_dir:要测试的模块名或测试用例目录

top_lever_dir=None:测试模块的顶层目录

示范:

startt_dir='./'

discover=unittest.defaultTestLoader.discover(startt_dir, pattern='test*.py')

if __name__=="__main__":

    runner=unittest.TextTestRunner()

    runner.run(discover)

5执行次序

默认按照ASCII的顺序加载测试用例,0-9,A-Z,a-z

目录和文件均按照此规则

6装饰器

unittest.skip(reason)

unittest.skipIf(condition, reason)

unittest.skipUnless(condition, reason)

unittest.expectedFailure(func)  #标记为失败

7fixtures

setUpModule()  #整个模块开始前执行

tearDownModule()  #整个模块结束前执行

setUpClass(cls)   #类开始前执行

tearDownClass(cls)   #类结束前执行

setUp(self)    #case开始前执行

tearDown(self)   #case结束前执行

这些东西是不是很眼熟

在junit4中有类似的注解

BeforeClass

AfterClass

Before

After




 



 

原创粉丝点击