2017-07-15 14 views
0

私はpytestでコマンドラインパラメータを渡す方法を知りました。 setup_class()またはsetup_module()で、コマンドライン引数として渡された変数に対して、基本的な検証を印刷したり、実行したりします。pytestのsetup_module()またはsetup_classにコマンドライン引数を出力できますか?

これらの変数にはテストメソッドでアクセスできますが、setup_classまたはsetup_moduleではアクセスできません。これも可能ですか?私はこのような何かをしたい

...

conftest.py

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

test_1.py conftest.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

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をインポートすることができます。

from conftest import option 

class Test_ABC: 

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

を私は申し訳ありませんが、私は私のtest.pyファイルは次のようにあるべきかを理解していません。あなたは詳細を教えてくれますか?ありがとうございます –

+0

私は答えを拡張しました。 – phd

+0

私はテストを実行するとこのエラーが発生します。私はどこが間違っているか教えてください。 'py.test test_2.py --user =" [email protected] "-vvs' ' usage:py.test [options] [file_or_dir] [file_or_dir] [...] ' ' py.test:エラー:認識できない引数:--user = mkunja @ infoblox.com ' ' inifile:None' 'rootdir:/ mnt/home/mverma/manoj/py' –

関連する問題