首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pytest中发出pytest_generate_tests()

在pytest中发出pytest_generate_tests()
EN

Stack Overflow用户
提问于 2017-10-25 12:16:13
回答 1查看 99关注 0票数 0

"conftest.py“

代码语言:javascript
复制
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_stringdefaultstring PASSEDpytest_generate_test_example.py::test_valid_stringhello通过

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 13:25:54

这是argparse的“问题”,与pytest无关。请参见测试脚本:

代码语言:javascript
复制
#! /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列表开始,如果参数是空的,就使用defaultstring (没有--stringinput命令行参数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46932200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档