#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
答案 0 :(得分:1)
我通过删除工作目录中的.pytest_cache
目录解决了类似的问题。
答案 1 :(得分:0)
我自己也遇到类似的问题,结果是我又将另一个conftest.py
文件复制到层次结构中更高一级的目录中,因此pytest实际上“看到”了(并试图加载)这两个文件,并且他两次检测到名称为“ --add”的选项。
答案 2 :(得分:0)
您可以通过将其添加到pytest
中来防止out
进入不应进入的目录(在我的情况下为build
和pytest.ini
)。
[pytest]
norecursedirs=out build