我们可以在 pytest 中打印 setup_module() 或 setup_class 中的命令行参数吗?

man*_*t k 3 python pytest python-2.7

我知道如何在 pytest 中传递命令行参数。我想在 setup_class() 或 setup_module() 中针对作为命令行参数传递的变量进行打印或进行一些基本验证。

我可以在测试方法中访问这些变量,但不能在 setup_class 或 setup_module 中访问。这可能吗?

我想做这样的事情......

测试.py

def pytest_addoption(parser):
    parser.addoption('--user',action='store', help='email id Ex: abc@infoblox.com')
Run Code Online (Sandbox Code Playgroud)

测试_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
Run Code Online (Sandbox Code Playgroud)

phd*_*phd 5

在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
Run Code Online (Sandbox Code Playgroud)

option现在您可以从以下位置导入conftest

from conftest import option

class Test_ABC:

    def setup_class(cls):
        user = option.user
        print user
        print 'Setup Class'
Run Code Online (Sandbox Code Playgroud)