getSuitCase.py 1.23 KB
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/7/26 下午7:05
# @Author : 付孟奇

'''自动导入类,暂时放弃'''

from util.HandleJson import file_read
from util.log import logger
from config.vendorPath import case_list_path
import unittest, os


def find_class():
    # 1、获取项目可执行case
    result = file_read(case_list_path)
    caseTrue_list = []
    case_list = []
    for k, v in result.items():
        if v == 'True':
            caseTrue_list.append(k + '.py')
    logger.info('所有可执行的case文件名为:' + str(caseTrue_list))
    # 2、动态导入所有case
    for case in caseTrue_list:
        testScript = os.path.join('./SITUAPIAutomation/case/', case)
        srcript_dir = os.path.dirname(testScript)
        srcrpit_path = ".".join(srcript_dir.split("/")[2:])
        path = "from " + srcrpit_path + " import "
        exec_str = path + case[:-3]
        exec(exec_str, globals())
        case = "%s.%s('%s')" % (case[:-3], case[:-3], "testFunc")
        case_list.append(case)
    return case_list


def get_suit():
    cases = find_class()
    suite = unittest.TestSuite()
    for case in cases:
        suite.addTest(eval(case))
    return suite


if __name__ == '__main__':
    find_class()