本文介绍了我们可以在 pytest 中的 setup_module() 或 setup_class 中打印命令行参数吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

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

I got to know how to pass command line parameters in pytest.I want to print or do some basic validation in my setup_class() or setup_module() against the variables passed as command line arguments.

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

I am able to access these variables in test methods but not in setup_class or setup_module. Is this even possible?

我想做这样的事情...

I want to do something like this...

conftest.py

def pytest_addoption(parser):
    parser.addoption('--user',action='store', help='email id Ex: [email protected]')

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

推荐答案

在 conftest.py:

In 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

现在你可以从 conftest 导入 option :

Now you can just import option from conftest:

from conftest import option

class Test_ABC:

    def setup_class(cls):
        user = option.user
        print user
        print 'Setup Class'

这篇关于我们可以在 pytest 中的 setup_module() 或 setup_class 中打印命令行参数吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 23:51