具有多个命令行选项的pytest

2024-06-14 15:21:59 发布

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

我对pytest的一个命令行参数没有问题。在

当我运行程序时:
python -m pytest -q -v --confcutdir=/usr/local/penguin/home/px09/p001 --cmdopt=type1 test-suite.py

我得到了预期的答复:

================================================ FAILURES ================================================
______________________________________________ test_answer _______________________________________________

cmdopt = 'type1'

    def test_answer(cmdopt):
        if cmdopt == "type1":
            print ("first")
        elif cmdopt == "type2":
            print ("second")
>       assert 0 # to see what was printed
E       assert 0

test-suite.py:7: AssertionError
------------------------------------------ Captured stdout call ------------------------------------------
first
======================================== 1 failed in 0.01 seconds ==============

当我尝试多个论点时,我会遇到问题

试验内容_样品.py在

^{pr2}$

内容conftest.py在

import pytest

def pytest_addoption(parser):
    parser.addoption("--cmdopt", action="store", default="type1",
        help="my option: type1 or type2")
    parser.addoption("--cmdopt2", action="store", default="type3",
                     help="my option: type3 or type4")

@pytest.fixture
def cmdopt(request):
    return request.config.getoption("--cmdopt")

def cmdopt2(request):
    return request.config.getoption("--cmdopt2")

_____________________________________ ERROR at setup of test_answer2 _____________________________________ file /usr/local/penguin/home/px09/p001/test-suite.py, line 9 def test_answer2(cmdopt2): E fixture 'cmdopt2' not found
> available fixtures: cache, capfd, capsys, cmdopt, doctest_namespace, monkeypatch, pytestconfig, record_xml_property, recwarn, tmpdir, tmpdir_factory
> use 'pytest --fixtures [testpath]' for help on them.

/usr/local/penguin/home/px09/p001/test-suite.py:9

================================================ FAILURES ================================================
______________________________________________ test_answer _______________________________________________

cmdopt = 'type1'

    def test_answer(cmdopt):
        if cmdopt == "type1":
            print ("first")
        elif cmdopt == "type2":
            print ("second")
>       assert 0 # to see what was printed
E       assert 0

test-suite.py:7: AssertionError
-

Tags: answerpytestpytestrequestusrlocaldef