gpt4 book ai didi

python-3.x - 如何获取 py.test session 的标记列表?

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

我在运行 py.test 4.3.1 与 python 3.7.6 在 Mac (Mojave) 上,我想在运行开始时获取“ session ”的标记列表。

conftest.py我尝试使用以下功能:

@pytest.fixture(scope="session", autouse=True)
def collab_setup(request):
print([marker.name for marker in request.function.pytestmark])

但是,这会导致错误
E       AttributeError: function not available in session-scoped context

当我调用一个虚拟测试时
 py.test -s -m "mark1 and mark2" tests/tests_dummy.py

在我的测试 session 中只拥有一次标记列表很重要,因为最后我想为测试套件中的所有测试设置一些东西。这就是为什么我不能在每个测试 session 中多次调用这个函数。

这有可能实现吗?

最佳答案

request fixture 是一个“函数”范围的fixture,它只包含当前要执行的测试级别的信息。这不是我们想要的。

我们想要 fixture pytestconfig .这是一个“ session ”范围固定装置,包含在 py.test 的调用中使用的参数。 .在这里你可以使用一个名为 getoption 的方法。获取标记:

@pytest.fixture(scope="session", autouse=True)
def collab_setup(pytestconfig):
print(pytestconfig.getoption("-m"))

关于python-3.x - 如何获取 py.test session 的标记列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59783094/

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