1. 背景

  • pytest 运行 测试用例生成 allure 报告时,当测试用例名称修改后重新运行,会保留历史运行记录
  • 又或者分开运行两个测试用例文件,但是 allure 报告生成目录是同一个,那么 allure 报告会同时显示两个文件的测试用例运行情况
  • 咱们来看看这种情况

2. 目录结构

下面两个栗子都是这个目录结构
image.png

3. 指定测试用例文件名称的栗子

3.1 test_1.py 的代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. __title__ =
  5. __Time__ = 2020/10/28 11:03
  6. __Author__ = 小菠萝测试笔记
  7. __Blog__ = https://www.cnblogs.com/poloyy/
  8. """
  9. def test_1():
  10. print("test_1 文件的测试用例1")
  11. def test_2():
  12. print("test_1 文件的测试用例2")

3.2 运行命令

进入该目录下,cmd 运行

  1. pytest test_1.py --alluredir=./allure

3.3 allure 报告

image.png
只有两条用例

3.4 修改一下 test_1.py 的代码```

  1. def test_11():
  2. print("test_1 文件的测试用例1")
  3. def test_22():
  4. print("test_1 文件的测试用例2")

3.5 再次运行命令,查看 allure 报告

image.png
四条用例,包含了历史的两条,这不是我们希望看到的

4. 分开运行测试用例文件的栗子

4.1 test_2.py 的代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. __title__ =
  5. __Time__ = 2020/10/28 11:03
  6. __Author__ = 小菠萝测试笔记
  7. __Blog__ = https://www.cnblogs.com/poloyy/
  8. """
  9. def test_1():
  10. print("test_1 文件的测试用例1")
  11. def test_2():
  12. print("test_1 文件的测试用例2")

4.2 分开运行 test_1 和 test_2 两个测试用例文件

  1. # 先运行第一个
  2. pytest test_1.py --alluredir=./allure
  3. # 再运行第二个,此时应该希望 allure 报告只有 test_2.py 的测试用例
  4. pytest test_2.py --alluredir=./allure

4.3 查看 allure 报告

image.png
出现了 test_1.py 的测试用例,这不是想要的结果

5. —clean-alluredir 参数

5.1 前言

  • pytest 提供了 —clean-alluredir 参数可以清空 allure 报告生成的目录
  • 可以看看 pytest 的说明文档
    1. pytest -h
    image.png

5.2 将上面的栗子重新运行

  1. # 先运行第一个
  2. pytest test_1.py --alluredir=./allure
  3. # 再运行第二个,此时应该希望 allure 报告只有 test_2.py 的测试用例
  4. pytest test_2.py --alluredir=./allure --clean-alluredir

5.3 运行结果

image.png