gpt4 book ai didi

python - 可以根据 fixture 值跳过测试吗?

转载 作者:行者123 更新时间:2023-12-04 16:46:22 26 4
gpt4 key购买 nike

我有很多测试分成许多不同的文件。在我的 conftest.py我有这样的事情:

@pytest.fixture(scope="session",
params=["foo", "bar", "baz"])
def special_param(request):
return request.param

虽然大多数测试适用于所有值,但有些只适用于 foo 和 baz。这意味着我在几个测试中都有这个:
def test_example(special_param):
if special_param == "bar":
pytest.skip("Test doesn't work with bar")

我觉得这有点难看,并希望有更好的方法来做到这一点。反正有没有使用跳过装饰器来实现这一点?如果没有,是否可以纠正我自己的装饰者可以做到这一点?

最佳答案

一种解决方案是使用 @pytest.mark.parametrize 覆盖 fixture .例如

@pytest.mark.parametrize("special_param", ["foo"])
def test_example(special_param):
# do test

另一种可能性是不使用 special_param固定装置并明确使用值 "foo"需要的地方。不利的一面是,这仅在没有其他也依赖于 special_param 的装置时才有效。 .

关于python - 可以根据 fixture 值跳过测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50937075/

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