python-3.x 获取Pytest中所有自定义标记的列表

xriantvc  于 2023-08-08  发布在  Python
关注(0)|答案(3)|浏览(116)

如果我有一个简单的测试用例,带有我自己的自定义标记,如:

class TestClass:

    @pytest.mark.first
    def test_first(self):
        assert True

    @pytest.mark.second
    def test_second(self):
        assert True

    @pytest.mark.third
    def test_third(self):
        assert True

字符串
如何获得整个自定义标记的列表,因为pytest -v --markers返回预定义标记的列表

@pytest.mark.skipif(condition)
@pytest.mark.xfail(condition, reason=None, run=True, raises=None)
@pytest.mark.parametrize(argnames, argvalues)
@pytest.mark.usefixtures(fixturename1, fixturename2, ...)
@pytest.mark.tryfirst
@pytest.mark.trylast


没有

@pytest.mark.first
@pytest.mark.second
@pytest.mark.third

k5ifujac

k5ifujac1#

您需要将标记名称添加到pytest.ini中以注册它们。参见https://docs.pytest.org/en/latest/example/markers.html#registering-markers

cwdobuhd

cwdobuhd2#

首先,您需要在名为pytest.ini的文件中注册所有自定义标记:

# pytest.ini
[pytest]
markers = first_customer_marker
    another_custom_marker
    oh_one_more_marker

字符串
现在,为了获得自定义标记列表,您可以使用以下函数之一:

  • config.getini('markers'):这将返回一个包含自定义标记以及内置标记(如pararmetrizeskipskipif等)的列表。
  • config._getini('markers'):这将返回一个仅包含自定义标记的列表
    范例:
def pytest_collection_modifyitems(items):
    for item in items:
        print(item.config.getini('markers'))
        print(item.config._getini('markers'))

qybjjes1

qybjjes13#

您应该将第一个、第二个和第三个标记注册到pytest.ini中的[pytest],如下所示,以使用pytest --markers显示它们。

# "pytest.ini"

[pytest]
markers =
    first: First marker
    second: Second marker
    third: Third marker

字符串

相关问题