使用【测试套件】批量执行【测试用例】的步骤:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 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】
1 2 3 4 5 6 7 8 | 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) : 每个用例 开始 / 结束 执行时都会调用这个实例方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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):所有用例执行 开始 / 结束 时都会调用这个类方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步