所以我一直试图让 pytest 根据一些命令行参数在不同的环境中运行 selenium 测试。但它一直抛出这个错误:
TypeError: setup_class() takes exactly 2 arguments (1 given)
似乎理解setup_class
需要 2 个参数,但host
没有被传递。这是代码setup_class
:
def setup_class(cls, host):
cls.host = host
这是 conftest.py 文件:
def pytest_addoption(parser):
parser.addoption("--host", action="store", default='local',
help="specify the host to run tests with. local|stage")
@pytest.fixture(scope='class')
def host(request):
return request.config.option.host
奇怪的是,host
函数正在看到它(所以如果我创建一个 test_function 并将主机作为参数传递,它就可以了),只是setup
固定装置不起作用。
我环顾四周,发现了这个,pytest - 在 setup_module 中使用 funcargs但这似乎不起作用(自 2.3.3 以来它已经过时了。
有谁知道我做错了什么?使用 py.test 2.3.2。
谢谢