簡體   English   中英

pytest中的pytest_generate_tests()中的問題

[英]Issue in pytest_generate_tests() in pytest

“conftest.py”

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM