想知道我如何读取“Pytest”的命令行参数来获取输入并使用变量而不是作为带有fixture的测试输入,而是使用参数来执行其他操作。 这是我想要实现的目标:
pytest --folder=< label > test_my_logic.py
其中label可以是a,b和c。并且根据标签值,我将获得具有预期数据的实际“文件夹”路径。例如
import pytest
def pytest_addoption(parser):
parser.addoption("--folder", action="store", default="All",
help="Please enter the folder which needs to be executed")
@pytest.fixture
def folder(request):
return request.config.getoption("--folder")
我有一个json和util方法,我可以使用它来读取json以获取a,b等实际文件夹值的值。我正在寻求帮助以便在我的脚本中知道如何获取参数--folder和使用它来做其他操作,而不是将其传递给我的脚本中带夹具的测试方法?在我正在阅读各种全局变量的测试脚本中,我有:
import pytest
import json
import sys
sys.path.append(os.path.realpath("%s/../../../../../common/utils" % os.path.dirname(os.path.abspath(__file__))))
import utils
print folder
TEST_ATTRIB = utils.getTestAttributes()['LOL']
PLACE_REQUEST_URL = utils.getURLs()['IMO']
...
...
py.test --folder=a tests/test_my_logic.py
tests/test_my_logic.py:16: in <module>
print folder
E NameError: name 'folder' is not defined
提前致谢!
答案 0 :(得分:1)
folder
是一个夹具,它应该用作测试的参数:
def test_a(folder):
print folder