[英]Issue in pytest_generate_tests() in pytest
def pytest_addoption(parser):
parser.addoption("--stringinput", action= "append", default = ["defaultstring"], help = "Input String")
def pytest_generate_tests(metafunc):
if "stringinput" in metafunc.fixturenames:
metafunc.parametrize("stringinput",metafunc.config.getoption("stringinput"))
當我們通過將命令行選項“ stringinput”傳遞為“ pytest pytest_generate_test_example.py --stringinput =” hello“來執行此代碼時,它也會在輸出中執行默認值。輸出的代碼段如下:-
pytest_generate_test_example.py::test_valid_string [默認字符串]通過pytest_generate_test_example.py::test_valid_string[hello]通過
這是argparse
的“問題”,與pytest
。 請參閱測試腳本:
#! /usr/bin/env python
import argparse
parser = argparse.ArgumentParser(description='Import')
parser.add_argument('test', action='append', default=['foo'])
args = parser.parse_args('bar'.split())
print args.test
它輸出['foo', 'bar']
。 即action='append'
附加到default
而無需先清除它。
因此,為避免該問題,請從一個空的default
列表開始,如果參數為空(沒有--stringinput
命令行參數),請使用defaultstring
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.