pytest官方文档 6.2 中文翻译版(第六章):使用属性标记测试用例

使用属性标记测试用例

使用 pytest.mark 可以帮助你在测试函数上简单的设置元数据。你可以在 API Reference 中找到完整的内置标记(marks)的列表。你也可以使用 pytest --markers 命令列出所有的内置和自定义的标记。

这里是一些内置的标记:

  • usefixtures 在测试函数或者测试类上使用夹具
  • filterwarnings 过滤一个测试方法中的特定警告
  • skip 总是跳过一个测试函数
  • skipif 在一定的条件下跳过测试方法
  • xfail 在一定条件下产生一个 ”期望的失败“
  • parametrize 一个测试方法使用多组数据多次执行

创建或给测试方法或者测试类使用一个自定义的标记也是很简单的。这些标记可以被插件使用,也可以用于选择执行用例,在命令行中使用 -m 参数可以指定要运行的标记。

可以看 Working with custom markers 这一节的例子,这些例子同样可以作为文档来使用。

注意:标记(marks)只能用于测试,不能用于夹具。

6.1 注册标记

你可以在你的 pytest.ini 文件中这样注册标记:

[pytest]
markers =
	slow: marks tests as slow (deselect with '-m "not slow"')
	serial

或者在 pyproject.toml 文件中这样注册:

[tool.pytest.ini_options]
markers = [
	"slow: marks tests as slow (deselect with '-m \"not slow\"')",
	"serial", 
	]

注意在冒号后面的都是描述信息。
另外,你还可以在 pytest_configure 钩子中编程实现注册标记这个功能:

def pytest_configure(config):
	config.addinivalue_line(
	"markers", "env(name): mark test to run only on named environment" )

已注册的标记出现在pytest的帮助信息中,并且不会发出警告(请参阅下一节)。强烈建议第三方插件能够注册自己的标记。

6.2 未知的标记引发一个错误

使用一个未注册的标记 @pytest.mark.name_of_the_mark 总是会引发一个警告,以避免在打错了标记名字的时候静静的运行突然给你一个惊吓。正如我们前面讲到的,你可以通过在 pytest.ini中注册标记或使用 pytest_configure 钩子来消除这个警告。
如果你在命令行中使用了 --strict-markers 参数,任何未注册的标记将会引发一个错误(error)。你可以通过配置强制要求进行检验:

[pytest]
addopts = --strict-markers
markers =
	slow: marks tests as slow (deselect with '-m "not slow"')
	serial
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值