Pytest:如何访问测试之外的命令行参数

时间:2017-04-02 19:13:39

标签: python pytest

我想访问从非测试类中传递给pytest的命令行参数。

我已将以下内容添加到我的conftest.py文件

30 x 30 px

但我无法弄清楚如何访问命令行传递的值。我找到了如何从夹具访问它的代码,但我想从一个不属于测试用例的方法或类中访问它。

2 个答案:

答案 0 :(得分:1)

您可以使用sys.argv访问参数。 当您使用命令行调用时,它将返回您发送的所有语句的列表。

例如

def pytest_addoption(parser):  # pragma: no cover
  """Pytest hook to add custom command line option(s)."""
  params = sys.argv[1:]
  group = parser.getgroup("Test", "My test option")
  group.addoption(
    "--stack",
    help="stack", metavar="stack", dest='stack', default=None)

答案 1 :(得分:0)

是的,您可以在 conftest.py 中再添加一个 pytest 钩子 pytest_configure,如下所示:

stack = None
def pytest_configure(config):
    global stack
    stack = config.getoption('--stack')

现在您的参数堆栈在全球范围内可用。