使用【测试套件】批量执行【测试用例】的步骤:
# 1 import unittest # 2.加载测试用例所在的模块 from Python_unittest import two_num_add as num_add from Python_unittest import two_num_multi as num_multi # 3. 创建测试套件 one_suite = unittest.TestSuite() # 4.通过模块来批量加载测试用例 # 定义测试加载器对象 one_loader = unttest.TestLoader() one_suite.addTest(one_loader.loadTestsFromModule(num_multi)) # 执行顺序与套件添加的顺序有关 one_suite.addTest(one_loader.loadTestsFromModule(num_add)) # 5.执行用例 # 创建执行器对象 one_runner = unittest.TextTestRunner() one_runner.run(one_suite)
使用【discover】
import unittest
# one_suite = unittest.defaultTestLoader.discover(".") # .代表当前py文件所在的路径
one_suite = unittest.defaultTestLoader.discover(r"C:UsersKYPycharmProjectsPython_Automated_Testing_Class_20Python_0715_unittest")
# 创建执行器对象
one_runner = unittest.TextTestRunner()
one_runner.run(one_suite)
在【测试用例】unit.TestCase模块:
setUp(self) 与 tearDown(self) : 每个用例 开始 / 结束 执行时都会调用这个实例方法。
class TestMulti(unittest.TestCase):
def setUp(self):
"""
在每一个用例执行之前, 会调用setUp实例方法
:return:
"""
log_filename = "record_run_result.txt"
self.one_file = open(log_filename, mode='a', encoding='utf-8') # 创建了一个one_file实例属性
print("打开【{}】文件".format(log_filename))
self.one_file.write("
{:=^40s}
".format("开始执行用例")) # 对字符串进行格式显示, 为了好看
def tearDown(self):
"""
当每一条用例执行结束之后, 会自动调用tearDown实例方法
:return:
"""
self.one_file.write("{:=^40s}
".format("执行用例结束"))
self.one_file.close()
setUpClass(cls)与tearDownClass(cls):所有用例执行 开始 / 结束 时都会调用这个类方法。
class TestMulti(unittest.TestCase):
@classmethod
def setUpClass(cls):
"""
在所有用例执行之前, 会调用一次setUpClass类属性
:return:
"""
log_filename = "record_run_result.txt"
cls.one_file = open(log_filename, mode='a', encoding='utf-8') # 创建了一个one_file实例属性
print("打开【{}】文件".format(log_filename))
cls.one_file.write("
{:=^40s}
".format("开始执行用例")) # 对字符串进行格式显示, 为了好看
@classmethod
def tearDownClass(cls):
"""
在所有用例执行之后, 会调用一次tearDownClass类属性
:return:
"""
cls.one_file.write("{:=^40s}
".format("执行用例结束"))
cls.one_file.close()