2016-08-23 90 views
1

是否有可能通過分佈式測試執行在pytest中查找命令行參數?pytest命令行參數@ pytest.mark.parametrize

py.test -n 16 tests/tests_*****.py --env="TestEnvironemnt" --html=XYZ/Reports.html 

os.sys.argv是給在我的代碼「-c」,如果我執行我的pytest代碼

+0

獲得的價值,我不知道我是否正確地理解你的問題,但確實[這個例子](HTTP:/ /docs.pytest.org/en/latest/example/simple.html#pass-different-values-to-a-test-function-depending-on-command-line-options)回答它? –

+0

上面的鏈接不適合我。但是,以下是:http://docs.pytest.org/en/latest/example/simple.html –

回答

0

的問題不是很清楚,但我想你想添加一個選項「 - -env「並讀取它的值。

做到這一點的方法是:

  1. 在你的項目中創建一個文件conftest.py(如果不存在的話),並添加選項--env

#conftest.py 
def pytest_addoption(parser): 
    parser.addoption('--env', action="store", dest="env", default="", 
    help="Define name of test environment") 

  • [可選]指派夾具env_name與選項--env

  • #conftest.py 
    @pytest.fixture 
    def env_name(request): 
        return request.config.getoption('env') 
    
    的值
  • 在您的測試功能,使用夾具env_name,您可以獲得該選項的值。 如果沒有定義,使用夾具要求而不是與request.config.getoption('env')

  • #test.py 
    def test1(env_name): 
        print("Test Environment is: {}".format(env_name))