ValueError:选项名称已添加pytest

时间:2019-03-12 09:23:24

标签: python pytest valueerror

#conftest.py

include pytest
def pytest_addoption(parser):
   parcer.addoption("--add", action="append")

@pytest.fixture(scope='session')
def adding(request):
    name_value = request.config.option.add
    if name_value == "plus":
        arg1 = 1
        arg2 = 2
        return arg1, arg2

#addition.py

@mark.first
def test_Valid_US_Phone_Number_1(adding):
    val1, val2 = adding
    assert val1 + val2 == 3

运行命令

$pytest -m first plusplus.py --add plus

我遇到以下错误,有人可以帮忙吗?

File "c:\users\g702823\appdata\local\continuum1\anaconda3\lib\site-packages\_pytest\config\argparsing.py", line 72, in addoption
self._anonymous.addoption(*opts, **attrs)

File "c:\users\g702823\appdata\local\continuum1\anaconda3\lib\site-packages\_pytest\config\argparsing.py", line 303, in addoption
raise ValueError("option names %s already added" % conflict)

ValueError: option names {'--add'} already added

3 个答案:

答案 0 :(得分:1)

我通过删除工作目录中的.pytest_cache目录解决了类似的问题。

答案 1 :(得分:0)

我自己也遇到类似的问题,结果是我又将另一个conftest.py文件复制到层次结构中更高一级的目录中,因此pytest实际上“看到”了(并试图加载)这两个文件,并且他两次检测到名称为“ --add”的选项。

答案 2 :(得分:0)

您可以通过将其添加到pytest中来防止out进入不应进入的目录(在我的情况下为buildpytest.ini)。

[pytest]
norecursedirs=out build