Pytest教程随读

Pytest官方教程-22-API参考-Marks

2019-04-30  本文已影响21人  韩志超

目录:

  1. 安装及入门
  2. 使用和调用方法
  3. 原有TestSuite使用方法
  4. 断言的编写和报告
  5. Pytest fixtures:清晰 模块化 易扩展
  6. 使用Marks标记测试用例
  7. Monkeypatching/对模块和环境进行Mock
  8. 使用tmp目录和文件
  9. 捕获stdout及stderr输出
  10. 捕获警告信息
  11. 模块及测试文件中集成doctest测试
  12. skip及xfail: 处理不能成功的测试用例
  13. Fixture方法及测试用例的参数化
  14. 缓存: 使用跨执行状态
  15. unittest.TestCase支持
  16. 运行Nose用例
  17. 经典xUnit风格的setup/teardown
  18. 安装和使用插件
  19. 插件编写
  20. 编写钩子(hook)方法
  21. 运行日志
  22. API参考
    1. 方法(Functions)
    2. 标记(Marks)
    3. 钩子(Hooks)
    4. 装置(Fixtures)
    5. 对象(Objects)
    6. 特殊变量(Special Variables)
    7. 环境变量(Environment Variables)
    8. 配置选项(Configuration Options)
  23. 优质集成实践
  24. 片状测试
  25. Pytest导入机制及sys.path/PYTHONPATH
  26. 配置选项
  27. 示例及自定义技巧
  28. Bash自动补全设置

API参考-Marks

22-API参考-02-Marks

标记(Marks)

可以使用标记应用元数据来测试功能(但不是固定装置),然后可以通过装置或插件访问。

pytest.mark.filterwarnings

教程@ pytest.mark.filterwarnings
为标记的测试项添加警告过滤器。

pytest.mark.``filterwarnings过滤器

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 参数: | 过滤器str) -
一个警告规范字符串,由Python文档的“警告过滤器”部分中 指定的元组内容组成,由。分隔。可以省略可选字段。传递用于过滤的模块名称不是正则表达式转义。(action, message,category, module, lineno)":"
例如:

@pytest.mark.warnings("ignore:.*usage will be deprecated.*:DeprecationWarning")
def test_foo():
    ...

|

pytest.mark.parametrize

教程参数化夹具和测试功能

Metafunc.``parametrizeargnamesargvaluesindirect = Falseids = None,*scope = None *)[source]

使用给定argnames的argvalues列表向基础测试函数添加新调用。在收集阶段执行参数化。如果你需要设置昂贵的资源,请参阅设置间接,以便在测试设置时进行。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 参数: |

pytest.mark.skip

教程跳过测试功能
无条件地跳过测试功能。

pytest.mark.``skip(**reason = None *)

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 参数: | reasonstr) - 跳过测试功能的原因。 |

pytest.mark.skipif

教程跳过测试功能
如果条件是,则跳过测试功能True

pytest.mark.``skipif条件,*原因=无

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 参数: |

pytest.mark.usefixtures

教程使用类,模块或项目中的夹具
将测试功能标记为使用给定的夹具名称。
警告
应用于夹具功能时,该标记无效。

pytest.mark.``usefixtures(*名称

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 参数: | args - 要使用的fixture的名称,作为字符串 |

pytest.mark.xfail

教程XFail:将测试功能标记为预期失败
标记测试功能按预期失败

pytest.mark.``xfailcondition = Nonereason = Noneraises = Nonerun = Truestrict = False *)

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 参数: |

自定义标记

标记是使用工厂对象动态创建的,pytest.mark并作为装饰器应用。
例如:

@pytest.mark.timeout(10, "slow", method="thread")
def test_function():
    ...

将创建并附加一个Mark对象到收集 Item,然后可以通过固定装置或钩子访问Node.iter_markers。该mark对象将具有以下属性:

mark.args == (10, "slow")
mark.kwargs == {"method": "thread"}
上一篇 下一篇

猜你喜欢

热点阅读