pytest测试流程ord

2024-04-26 03:12:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似下面的pytest代码。。。 如果我用--count 3运行它,它将首先运行测试_3次,然后再运行test_3次。在

如果我想让它先运行test_,然后再运行test峎,然后重复这个流程呢?在

谢谢。:)

@pytest.mark.usefixtures('setup')
class TestSomething:

    def run_setup(self):
        pass

    def test_first(self):
        print('test 1')
        name = 'name'
        assert name.isalpha()

    def test_second(self):
        print('test 2')
        name = '12345'
        assert name.isalpha()

Tags: 代码nametestselfpytestdefcountsetup
2条回答

你可以自己实现。看看^{}钩子,您可以在其中更改要执行的测试列表。示例:

# conftest.py
import pytest

def pytest_addoption(parser):
    parser.addoption(' numrepeats', action='store', type=int, default=1)

def pytest_collection_modifyitems(items):
    numrepeats = pytest.config.getoption(' numrepeats')
    items.extend(items * (numrepeats - 1))

当放入tests根目录中的conftest.py文件时,此代码添加一个新的命令行选项numrepeats,它将重复测试运行n次:

^{pr2}$

基于https://pytest-ordering.readthedocs.io(alpha)插件,您可以执行以下操作:

import pytest

@pytest.mark.order2
def test_foo():
    assert True

@pytest.mark.order1
def test_bar():
    assert True

另请参阅Test case execution order in pytest上的讨论。在

我个人的看法是,如果你的测试需要顺序,它们并不是真的很好的隔离,一些其他的测试套装设计是可能的。在

相关问题 更多 >

    热门问题