【发布时间】:2021-05-27 01:08:07
【问题描述】:
在调用 pytest 时可以使用-m 参数只运行由某个标记标记的测试。
例如pytest -m testsubset_a.
我想知道...是否也可以从代码内部启用这些标记之一?例如在pytest_collection_modifyitems() 期间的某个地方?
我问的原因是因为我正在开发一个测试工具,它将使用 pytest 标记来启用特定的测试子集,但过去没有这样做。由于我们希望向后兼容,因此我想在未给出 -m 参数时启用默认子集(标记)。
【问题讨论】:
-
@MrBeanBremen 这不是我要问的。我知道您可以将_marker 添加到测试中,我们已经在代码中这样做了。我要问的是你是否可以从代码内部“启用”一个标记(就像它是从 shell 传递给 pytest 一样)。
-
你需要一个例子来说明这一点吗?是的,我相当肯定这个钩子是可能的
-
@gold_cy:如果可能的话,当然可以。那会很有帮助!但要明确一点:我不是在谈论
item.add_marker()。我知道该怎么做。 -
@Opifex 正确,即使该人排除了
-m标志,您也只想运行某些标记,这是期望的行为吗? -
@gold_cy 是的,例如我有
marker_a和marker_b;然后用户可以将这两个作为参数传递给-m。但是,如果用户不使用-m,它应该默认为marker_a。
标签: python pytest pytest-markers