【pytest】获取所有用例名称并存于数据库

时间:2025-02-15 08:30:16
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2025-02-11 8:45 # @Author : duxiaowei # @File : get_filename.py # @Software: 这个文件是 : 将编写的pytest自动测试用例,中所有用例路径名,存储到pytest_ready表中 import os import re from datetime import datetime from com.connect_sqllite import DBlite """ 1. 获取所有用例名称 2. 将所有用例名称存到表pytest_ready表 """ # 获取所有用例名称 def get_test_files(current_dir): matching_files = [] # 遍历当前目录下的所有文件和文件夹 for root, dirs, files in os.walk(current_dir): for file in files: # 检查文件是否以 .py 结尾,并且以 test_ 开头或以 _test 结尾 if file.endswith('.py') and (file.startswith('test_') or file.endswith('_test.py')): # 文件名 path = os.path.join(root, file).replace(current_dir, "") # 洗出来,文件名中jira号,如果没有jira号,输入'' numbers = re.findall(r'\d+', path) if len(numbers) == 0: # # 如果用例名称解析不出数组,输入'' matching_files.append((path, '')) elif len(numbers) == 1: matching_files.append((path, numbers[0])) else: # 如果用例名称解析出多个数字,输入2 matching_files.append((path, '2')) # 打印符合条件的文件列表 return matching_files def insert_pytest_ready(): folder_path = os.path.abspath('..') test_files = get_test_files(folder_path) for jira in test_files: # 先查询是否有记录 sql_select = "select count(1) from pytest_ready where filename = ?" arg = (jira[0],) result = DBlite().select(sql_select, arg) if result[0][0] == 0: current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") sql_insert = "insert into pytest_ready(filename, jira_num, createtime) values (?,?,?)" arg = (jira[0], jira[1], current_time) DBlite().change(sql_insert, arg) else: current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") sql_update = "update pytest_ready set updatetime=? where filename=?" arg = (current_time, jira[0]) DBlite().change(sql_update, arg) # # 获取所有用例名称 # 插入数据库,pytest_ready # insert_pytest_ready()