我知道如何在pytest中传递命令行参数。 我想在setup_class()或setup_module()中打印或做一些基本验证,对照作为命令行参数传递的变量。
我能够在测试方法中访问这些变量,但不能在setup_class或setup_module中访问。这甚至可能吗?
我想做这样的事......
conftest.py
def pytest_addoption(parser):
parser.addoption('--user',action='store', help='email id Ex: abc@infoblox.com')
test_1.py
import pytest
def setup_module():
print 'Setup Module'
def teardown_module():
print "Teardown Module"
class Test_ABC:
def setup_class(cls,request):
user = request.config.option.user
print user
print 'Setup Class'
def teardown_class(cls,request):
print 'Teardown Class'
def test_12(self,request):
print "Test_12"
assert 1==1
答案 0 :(得分:1)
在conftest.py中:
def pytest_addoption(parser):
"""Add the --user option"""
parser.addoption(
'-U', '--user',
action="store", default=None,
help="The user")
option = None
def pytest_configure(config):
"""Make cmdline arguments available to dbtest"""
global option
option = config.option
现在您只需从option
导入conftest
:
from conftest import option
class Test_ABC:
def setup_class(cls):
user = option.user
print user
print 'Setup Class'
答案 1 :(得分:0)
我有一个类似的用例,最终实现如下:
在conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption("--testarg", action="store", dest="testarg", default="test", help="testarg help")
def pytest_configure(config):
pytest.testarg = config.getoption('testarg')
在test_sample.py
import pytest
print pytest.testarg
资源:
答案 2 :(得分:0)
1。首先添加conftest.py并在其中添加2个方法。
http://yourDomain.com
2。然后调用pytest。在您的setupclass或setupmethod中。
喜欢
def pytest_addoption(parser):
parser.addoption(
"--devicename", action="store", default="test1", help="test1"
)
def pytest_configure(config):
pytest.devicename = config.getoption('devicename')