簡體   English   中英

如何在pytest中僅運行一次參數測試

[英]How run parametrize test only once in pytest

我只需要在pytest中運行一次參數化測試,例如,我有一個包含測試數據的動態列表,並且想要使用test_data [0]參數運行測試,以防用戶為此發送某些條件,例如mark

test_data = list()
test_data = create_test_data() #dynamic list depends on user conditions

@pytest.mark.parametrize("params", test_data)
def test_b(params):
    ...

最好將您的測試重構為配置文件並進行測試。 那么最簡單的方法是在不同的文件夾中定義幾個配置文件,並使用不同數量的數據。

或者,您傳遞一個參數並對其進行解析,如下所示

測試:

def test_b(params):
    ...

conftest.py的內容:

data = [....]


def pytest_addoption(parser):
    parser.addoption("--one", action="store_true", help="run one test")


def pytest_generate_tests(metafunc):
    if "params" in metafunc.fixturenames:
        if metafunc.config.getoption("one"):

            metafunc.parametrize("params", data[:1])
        else:
            metafunc.parametrize("params", data) 

另請參閱如何通過命令行在pytest中傳遞參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM