我的想法
每次運行測試的時候,先刪除測試結果集。
因爲每次運行測試都會在結果集目錄中追加生成.json文件。
然後使用allure generate命令的時候會從這些測試結果集中去生成HTML報告,所以即使添加了--clean參數,也無法保證每次報告都是最新的。
如果每次運行都把上一次運行的測試結果集刪除,然後生成HTML報告的時候,再加上--clean參數,就肯定能保證每次報告都是最新的。
import os # ----------------這種方式刪除目錄,代碼有點長---------------- # 獲取當前的工作目錄 current_path = os.getcwd() # 判斷當前目錄下是否存在allure測試結果集目錄, 如果存在則刪除 if os.path.exists(os.path.join(current_path, 'allure-results')): results_path = os.path.join(current_path, 'allure-results') for i in os.listdir(results_path): os.remove(os.path.join(results_path, i)) os.removedirs(results_path) os.system('pytest test_allure.py --alluredir=allure-results') os.system('allure generate allure-results -o allure-report -c') os.system('allure open allure-report') # ----------------來個簡版的--------------- # 如果存在測試結果集目錄,則刪除 os.system('if exist "allure-results" (rd /s/q allure-results)') os.system('pytest test_allure.py --alluredir=allure-results') os.system('allure generate allure-results -o allure-report -c') os.system('allure open allure-report') # ----------------最簡版--------------- os.system('pytest test_allure.py --alluredir=allure-results --clean-alluredir') os.system('allure generate allure-results -o allure-report -c ') os.system('allure open allure-report') """ # 通過命令刪除目錄 # rd表示remove dir 刪除目錄 # /s表示表示刪除該目錄下所有遍歷的子目錄和文件 # /q表示刪除目錄時不提示確認,直接刪除 os.system('rd /s/q allure-results') """