pytest测试框架

发布时间 2023-11-14 15:15:50作者: Mio21

pytest测试框架

pytest规则

PyTest是一个灵活的测试框架,具有一些约定和规则,以便更容易编写和运行测试。以下是PyTest的一些主要规则和约定:

  1. 测试文件的命名规则

    • 测试文件应以test_开头,并以.py结尾。例如,test_example.py
  2. 测试函数的命名规则

    • 测试函数应以test_开头,例如,test_case_name
  3. 自动发现测试

    • PyTest会自动查找和执行测试文件和测试函数。不需要显式注册测试用例。
  4. 断言

    • 使用标准的Python assert 语句来进行断言。例如,assert result == expected
  5. 参数化测试

    • 使用 @pytest.mark.parametrize 装饰器来实现参数化测试。这使得可以在多组输入值上运行同一测试用例。
  6. 测试标记

    • 使用 @pytest.mark 装饰器为测试用例添加标记,例如,@pytest.mark.smoke@pytest.mark.skip。这些标记可以用于自定义测试运行。
  7. 命令行参数

    • 使用命令行参数来控制测试的行为。例如,pytest -k keyword 可以运行包含特定关键字的测试用例。
  8. 测试运行顺序

    • 默认情况下,PyTest不保证测试的运行顺序。如果需要按顺序运行测试,可以使用 -k 参数或自定义插件。
  9. 测试夹具(Fixtures)

    • 使用 @pytest.fixture 装饰器创建测试夹具,用于在测试用例之间共享初始化和清理代码。
  10. 自定义测试报告

    • 可以使用PyTest插件来生成自定义的测试报告,例如 pytest-html 生成HTML报告。
  11. 插件扩展

    • PyTest支持大量的插件,可以用于扩展测试框架的功能,如参数化、分布式测试、并行测试、测试覆盖率等。
  12. 模块级别的配置

    • 使用 conftest.py 文件来定义测试项目级别的配置和夹具。这些配置可以在整个项目中共享。
  13. 跳过测试用例

    • 使用 @pytest.mark.skip 或条件判断来跳过某些测试用例。
  14. 重试失败的用例

    • 使用 @pytest.mark.flaky(reruns=N) 来标记测试用例,PyTest将尝试重新运行失败的用例最多N次。

这些规则和约定使PyTest成为一个强大且易于使用的测试框架,但你也可以根据项目的具体需求扩展和自定义它。了解这些基本规则将有助于更好地组织和编写测试用例。