测试套件实例
目录
- 方式一:addTest/addTests/addTests TestLoader
- 一、用addTest方法
- 二、用addTests方法
- 三、用addTests方法 TestLoader方法
- 方式二:定义函数(addTest方式添加用例)
- 方式三:定义函数(map方式添加用例)
- 方式四:嵌套测试套件
- 方式五:TestLoader生成默认的测试套件
如图所示:测试套件实例项目目录结构:
1、创建test_case包(用来存放测试用例)。
2、在test_case包下,创建test_Demo1.py文件。
脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
"""
测试用例1
"""
class TestDemo1(unittest.TestCase):
def setUp(self):
print('setUp')
def test_case1(self):
print('test_case1')
def tearDown(self):
print('tearDown')
3、在test_case包下,创建test_Demo2.py文件。
脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
"""
测试用例2
"""
class TestDemo2(unittest.TestCase):
def setUp(self):
print('setUp')
def test_case2(self):
print('test_case2')
def tearDown(self):
print('tearDown')
方式一:
addTest/addTests/addTests TestLoader
创建runtest1.py文件。
一、用addTest方法
1、脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from test_case import test_Demo1
from test_case import test_Demo2
"""
测试套件实例:方式一:addTest/addTests/addTests TestLoader
"""
# 用addTest方法
suite = unittest.TestSuite()
suite.addTest(test_Demo1.TestDemo1('test_case1'))
suite.addTest(test_Demo2.TestDemo2('test_case2'))
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
2、执行runtest1.py文件,运行结果:
执行test_Demo1模块里的TestDemo1类里的test_case1方法;
执行test_Demo2模块里的TestDemo2类里的test_case2方法。
二、用addTests方法
1、脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from test_case import test_Demo1
from test_case import test_Demo2
"""
测试套件实例:方式一:addTest/addTests/addTests TestLoader
"""
# 用addTests方法
suite = unittest.TestSuite()
tests = [test_Demo1.TestDemo1('test_case1'), test_Demo2.TestDemo2('test_case2')]
suite.addTests(tests)
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
2、执行runtest1.py文件,运行结果:
执行test_Demo1模块里的TestDemo1类里的test_case1方法;
执行test_Demo2模块里的TestDemo2类里的test_case2方法。
三、用addTests方法 TestLoader方法
(loadTestsFromName/loadTestsFromNames/loadTestsFromTestCase/loadTestsFromModule/discover)。
1、脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from test_case import test_Demo1
from test_case import test_Demo2
"""
测试套件实例:方式一:addTest/addTests/addTests TestLoader
"""
# 用addTests方法 TestLoader方法(loadTestsFromName/loadTestsFromNames/loadTestsFromTestCase/loadTestsFromModule/discover)
suite = unittest.TestSuite()
suite.addTests(unittest.TestLoader().loadTestsFromName('test_case.test_Demo1.TestDemo1.test_case1'))
suite.addTests(unittest.TestLoader().loadTestsFromNames(['test_case.test_Demo1.TestDemo1.test_case1','test_case.test_Demo2.TestDemo2.test_case2']))
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(test_Demo1.TestDemo1))
suite.addTests(unittest.TestLoader().loadTestsFromModule(test_Demo1))
suite.addTests(unittest.TestLoader().discover(start_dir='./', pattern='test*2.py'))
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
2、执行runtest1.py文件,运行结果:
代码语言:javascript复制(1)加载test_case包里的test_Demo1模块里的TestDemo1类里的test_case1方法。
TestLoader().loadTestsFromName('test_case.test_Demo1.TestDemo1.test_case1')
(2)加载test_case包里的test_Demo1模块里的TestDemo1类里的test_case1方法,加载test_case包里的test_Demo2模块里的TestDemo2类里的test_case2方法。
TestLoader().loadTestsFromNames(['test_case.test_Demo1.TestDemo1.test_case1','test_case.test_Demo2.TestDemo2.test_case2'])
(3)加载test_Demo1模块里的TestDemo1类(test_case1方法)。
TestLoader().loadTestsFromTestCase(test_Demo1.TestDemo1)
(4)加载test_Demo1模块(test_case1方法)。
TestLoader().loadTestsFromModule(test_Demo1)
(5)加载test_Demo2模块(test_case2方法)。
TestLoader().discover(start_dir='./', pattern='test*2.py'))
方式二:
定义函数(addTest方式添加用例)
1、创建runtest2.py文件,脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from test_case import test_Demo1
from test_case import test_Demo2
"""
测试套件实例:方式二:定义函数(addTest方式添加用例)
"""
def suite():
suite = unittest.TestSuite()
suite.addTest(test_Demo1.TestDemo1('test_case1'))
suite.addTest(test_Demo2.TestDemo2('test_case2'))
return suite
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite())
2、执行runtest2.py文件,运行结果:
执行test_Demo1模块里的TestDemo1类里的test_case1方法;
执行test_Demo2模块里的TestDemo2类里的test_case2方法。
方式三:
定义函数(map方式添加用例)
1、创建runtest3.py文件,脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from test_case import test_Demo1
"""
测试套件实例:方式三:定义函数(map方式添加用例)
"""
def suite():
tests = ['test_case1']
return unittest.TestSuite(map(test_Demo1.TestDemo1,tests))
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite())
2、执行runtest3.py文件,运行结果:
执行test_Demo1模块里的TestDemo1类里的test_case1方法。
方式四:
嵌套测试套件
1、创建runtest4.py文件,脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
import runtest2
import runtest3
"""
测试套件实例:方式四:嵌套测试套件(多个测试套件构建成更大的测试套件)
"""
suite1 = runtest2.suite()
suite2 = runtest3.suite()
alltests = unittest.TestSuite([suite1, suite2])
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(alltests)
2、执行runtest4.py文件,运行结果:
将runtest2和runtest3模块的测试套件进行组合后执行。
方式五:
TestLoader生成默认的测试套件
1、创建runtest5.py文件,脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from test_case import test_Demo1
"""
测试套件实例:方式五:TestLoader生成默认的测试套件
"""
suite = unittest.TestLoader().loadTestsFromTestCase(test_Demo1.TestDemo1)
if __name__=='__main__':
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
2、执行runtest5.py文件,运行结果:
执行test_Demo1模块里的TestDemo1类(test_case1方法)。