gpt4 book ai didi

python - pytest - 如何知道选择了哪些标记

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:32 24 4
gpt4 key购买 nike

在 pytest 中有什么方法可以知道从命令行选择了哪些标记?

我有一些标记为“缓慢”的测试需要大量处理。我只想在标记慢被激活时处理治疗。

heavy_var = None

def setup_module(module):
global heavy_var

# Need help here!?
if markers["slow"]:
heavy_var = treatment()


def test_simple():
pass


@pytest.mark.slow():
def test_slow():
assert heavy_var.x == "..."

我怎么知道是否选择了慢速标记?当我使用 -m not slow 调用 pytest 时,markers["slow"] 将为 False,否则为 True。

最佳答案

如果您只需要在测试标记为 slow 时运行一些代码被选中时,您可以通过在替换 setup_module 的模块范围的 fixture 中过滤测试项目来做到这一点.示例:

@pytest.fixture(scope='module', autouse=True)
def init_heavy_var(request):
for item in request.session.items:
if item.get_closest_marker('slow') is not None:
# found a test marked with the 'slow' marker, invoke heavy lifting
heavy_var = treatment()
break

关于python - pytest - 如何知道选择了哪些标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58142211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com