一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“Unittest如何组织冒烟用例”。
环境准备:
Python 3.x
Pytest 5.x
项目目录
smoke_testing_demo
test_case
__init__.py
test_case_with_unittest.py
test_case_with_pytest.py
run_unittest_smoke_testing.py
Unittest如何组织冒烟用例
当 import unittest 时 ,会自动导入TestLoader类
TestLoader这个类下,封装了 5 种组织用例的方法
本文主要讲解 loadTestsFromNames
loadTestsFromNames 方法简介
# loader.py 该文件在python3.7已不存在,建议使用python3.64 查看使用方法
class TestLoader(object):
"""
该类负责根据各种标准加载测试并将它们包装在TestSuite中
"""
def loadTestsFromNames(self, names, module=None):
"""
返回给定的一组用例名的测试用例的套件
"""
loadTestsFromNames 组织冒烟用例
# test_case_with_unittest.py
#!/usr/bin/env python3
# encoding:utf-8
import unittest
class TestUittestCase(unittest.TestCase):
def test_case_with_unittest_1(self):
'''冒烟测试用例'''
print('I am Smoke Testing ')
def test_case_with_unittest_2(self):
pass
if __name__ == '__main__':
unittest.main(verbosity=2)
# test_case_with_unittest2.py
#!/usr/bin/env python3
# encoding:utf-8
import unittest
class TestUittestCase2(unittest.TestCase):
def test_case_with_unittest_3(self):
'''冒烟测试用例'''
print('I am Smoke Testing ')
def test_case_with_unittest_4(self):
pass
if __name__ == '__main__':
unittest.main(verbosity=2)
冒烟测试用例集
# run_unittest_smoke_testing.py
#!/usr/bin/env python3
# encoding:utf-8
import unittest
cases = [
'test_case.test_case_with_unittest2.TestUittestCase2.test_case_with_unittest_3',
'test_case.test_case_with_unittest.TestUittestCase.test_case_with_unittest_1'
]
test_suit = unittest.TestLoader().loadTestsFromNames(cases)
runner = unittest.TextTestRunner(verbosity=2)
runner.run(test_suit)
运行结果
test_case_with_unittest_3(test_case.test_case_with_unittest2.TestUittestCase2)
冒烟测试 ... ok
test_case_with_unittest_1 (test_case.test_case_with_unittest.TestUittestCase)
冒烟测试 ... ok
----------------------------------------------------------------------
Ran 2 tests in 0.000s
小结:
通过loadTestsFromNames 可以从不同的模块组织特定的用例集
使用loadTestsFromNames这个方法,需要传入一个数组
数组里面里面的元素必须是字符串
数组元素传入格式:'moudleName.testCaseClassName.testCaseName'
执行用例是根据数组元素的的顺序执行