使用【测试套件】批量执行【测试用例】的步骤:
# 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:\Users\KY\PycharmProjects\Python_Automated_Testing_Class_20\Python_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("\n{:=^40s}\n".format("开始执行用例")) # 对字符串进行格式显示, 为了好看 def tearDown(self): """ 当每一条用例执行结束之后, 会自动调用tearDown实例方法 :return: """ self.one_file.write("{:=^40s}\n".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("\n{:=^40s}\n".format("开始执行用例")) # 对字符串进行格式显示, 为了好看 @classmethod def tearDownClass(cls): """ 在所有用例执行之后, 会调用一次tearDownClass类属性 :return: """ cls.one_file.write("{:=^40s}\n".format("执行用例结束")) cls.one_file.close()