如果你還想從頭學起Pytest,可以看看這個系列的文章哦!
https://www.cnblogs.com/poloyy/category/1690628.html
背景
- pytest 運行 測試用例生成 allure 報告時,當測試用例名稱修改后重新運行,會保留歷史運行記錄
- 又或者分開運行兩個測試用例文件,但是 allure 報告生成目錄是同一個,那么 allure 報告會同時顯示兩個文件的測試用例運行情況
- 咱們來看看這種情況
目錄結構
下面兩個栗子都是這個目錄結構

指定測試用例文件名稱的栗子
test_1.py 的代碼
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = __Time__ = 2020/10/28 11:03 __Author__ = 小菠蘿測試筆記 __Blog__ = https://www.cnblogs.com/poloyy/ """ def test_1(): print("test_1 文件的測試用例1") def test_2(): print("test_1 文件的測試用例2")
運行命令
進入該目錄下,cmd 運行
pytest test_1.py --alluredir=./allure
allure 報告

只有兩條用例
修改后的 test_1.py 的代碼
def test_11(): print("test_1 文件的測試用例1") def test_22(): print("test_1 文件的測試用例2")
再次運行命令,查看 allure 報告

四條用例,包含了歷史的兩條,這不是我們希望看到的
分開運行測試用例文件的栗子
test_2.py 的代碼
#!/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = __Time__ = 2020/10/28 11:03 __Author__ = 小菠蘿測試筆記 __Blog__ = https://www.cnblogs.com/poloyy/ """ def test_1(): print("test_1 文件的測試用例1") def test_2(): print("test_1 文件的測試用例2")
分開運行 test_1 和 test_2 兩個測試用例文件
# 先運行第一個 pytest test_1.py --alluredir=./allure # 再運行第二個,此時應該希望 allure 報告只有 test_2.py 的測試用例 pytest test_2.py --alluredir=./allure
查看 allure 報告

出現了 test_1.py 的測試用例,這不是想要的結果
--clean-alluredir 參數
前言
- pytest 提供了 --clean-alluredir 參數可以清空 allure 報告生成的目錄
- 可以看看 pytest 的說明文檔
pytest -h

將上面的栗子重新運行
# 先運行第一個 pytest test_1.py --alluredir=./allure # 再運行第二個,此時應該希望 allure 報告只有 test_2.py 的測試用例 pytest test_2.py --alluredir=./allure --clean-alluredir
運行結果

