组件

test cases、test suites、test fixtures、test runner

编写规范

• 测试模块首先 import unittest
• 测试类必须继承 unittest.TestCase
• 测试⽅方法必须以“test_”开头!
• 模块名字,类名没有要求

执行规则

基于测试⽅法级别的setUp, tearDown
• 执⾏每个测试方法的时候都会执行一次setUp 和tearDown
• 基于类级别的 setUpClass, tearDownClass
• 执⾏这个类里⾯的所有测试⽅法只有一次执行setup, tearDown
• 基于模块级别的 setUpModule,tearDownModule
• 执⾏此模块里的所有类⾥的测试⽅方法,只执行⼀次setup和teardown

example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
封装测试套件运行某个目录下所有用例并出html报告
importmport os,time
case path = os.path.join(os.path.dirname(_ file_ ), 'demo_unittest')
report path = os.path.join(os.path,dirnane(_ file__ ), 'report')
def create suite( ):
suite = unittest.TestSuite( )
discover = unittestdefaultTestLoader.discover(casepath,pattern='test*.py',top_level_dir=None)
print (discover )
for test suite in discover:
for test case in test_suite :
suite.addTests (test_case )
return suite
now = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
filename = report_path+"/”+now+"_result.html"
with open(filename, 'wb') as fp:
runner = HTMLTestRunner(
stream=fp,
title='接口测试报告',
description='搜索用例执行情况:')
runner.run(create_suite())
fp.close()