【发布时间】:2012-10-27 20:44:32
【问题描述】:
所以我一直在尝试让 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 并将 host 作为参数传递,它就可以了),只是 setup 固定装置不起作用.
我环顾四周发现了这个,pytest - use funcargs inside setup_module,但这似乎不起作用(自 2.3 以来它已经过时了。
有谁知道我做错了什么?使用 py.test 2.3.2。
谢谢
【问题讨论】:
标签: python unit-testing testing command-line-arguments pytest