pytest的mark使用

pytest -m 是 pytest 测试框架中的一个命令行选项,用于通过标记(marker)来选择性地运行测试。标记是一种将特定的元数据与测试函数关联起来的方式,可以用来对测试进行分类、分组或筛选。

使用 -m 选项时,后面通常跟着一个表达式,用于指定要运行的测试的标记。这个表达式可以是一个简单的标记名称,也可以是一个更复杂的逻辑表达式。

下面是一些使用 pytest -m 的示例:

  1. 运行带有特定标记的测试

如果你有一些测试函数被标记为 slow,你可以使用以下命令只运行这些测试:

pytest -m slow
  1. 排除带有特定标记的测试

如果你想运行所有测试,但排除被标记为 slow 的测试,你可以使用以下命令:

pytest -m "not slow"
  1. 组合多个标记

你可以使用逻辑运算符(如 andornot)来组合多个标记。例如,如果你想运行被标记为 fastcritical 的测试,你可以使用以下命令:

pytest -m "fast or critical"
  1. 使用自定义标记

你还可以定义自己的标记,并在测试函数中使用它们。例如,你可以创建一个标记 my_feature,并使用它来标记与特定功能相关的测试。然后,你可以使用以下命令来运行这些测试:

pytest -m my_feature

为了在测试函数中使用标记,你可以使用 @pytest.mark 装饰器。例如:

import pytest

@pytest.mark.slow
def test_slow_function():
    # 这是一个被标记为 'slow' 的测试函数
    pass

@pytest.mark.fast
def test_fast_function():
    # 这是一个被标记为 'fast' 的测试函数
    pass

在这个例子中,test_slow_function 被标记为 slow,而 test_fast_function 被标记为 fast。然后,你可以使用 pytest -m 命令来选择性地运行这些测试。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容