multiple_case_eval.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. ##################################################################
  4. #
  5. # Copyright (c) 2023 CICV, Inc. All Rights Reserved
  6. #
  7. ##################################################################
  8. """
  9. @Authors: yangzihao(yangzihao@china-icv.cn)
  10. @Data: 2024/01/30
  11. @Last Modified: 2024/01/30
  12. @Summary: Evaluateion functions
  13. """
  14. import os
  15. import sys
  16. sys.path.append('../config')
  17. sys.path.append('../common')
  18. sys.path.append('../modules')
  19. sys.path.append('../results')
  20. import json
  21. import traceback
  22. import log
  23. from common import json2dict
  24. from config_parser import ConfigParse
  25. from multi_cases_evaluate import multi_case_statistic
  26. def multiple_cases_eval(configPath, singleReportPath, reportPath):
  27. logger = log.get_logger()
  28. # 加载配置文件
  29. try:
  30. # json_file = os.path.join(configPath, 'config.json')
  31. config = ConfigParse(configPath)
  32. except Exception as e:
  33. print('Config file parsing ERROR!', e)
  34. logger.error("MULTIPLE_CASES_EVAL: Config file parsing ERROR!")
  35. sys.exit(-1)
  36. # 加载各单用例报告字典
  37. try:
  38. cases_dict = json2dict(singleReportPath)
  39. except Exception as e:
  40. print('Cases dict file parsing ERROR!', e)
  41. logger.error("MULTIPLE_CASES_EVAL: Cases dict config file parsing ERROR!")
  42. sys.exit(-1)
  43. # 生成多用例报告
  44. try:
  45. # multiple cases report statistic and generate
  46. multi_dict = multi_case_statistic(cases_dict, config)
  47. with open(f'{reportPath}', 'w', encoding='utf-8') as f:
  48. f.write(json.dumps(multi_dict, ensure_ascii=False))
  49. except:
  50. traceback.print_exc()
  51. print(1)
  52. logger.error("MULTIPLE_CASES_EVAL: Evaluate multiple cases ERROR!")
  53. sys.exit(-1)