gpt4 book ai didi

Python单元测试: Mimic a command line argument for test purposes

转载 作者:行者123 更新时间:2023-12-01 04:01:58 24 4
gpt4 key购买 nike

我正在为 my_script.py 中的以下函数编写单元测试:

def _parse_args():
parser = argparse.ArgumentParser(
description='Script to configure appliance.'
)
parser.add_argument('--config_file',
help='Path to a JSON configuration file')
print parser.parse_args()
return parser.parse_args()

我想创建一个单元测试来模拟命令行提示符:

myscript.py --config_file test.json

这是我到目前为止所拥有的:

def test_parse_arg_test_config(self):

test ={
"name": "test_name",
"category": "test_category"
}

# set the fake command line prompt to be:
# myscript.py --config_file test
# (where test is defined above)

self.assertEquals(my_script._parse_args().config_file, test)

这显然是不完整的,但我想知道我是否以正确的方式处理这个问题,因为 _parse_args 不接受任何输入我不知道模仿配置文件的不同方法传递到函数中。

最佳答案

要将 args 传递到函数中,请添加参数 args

def _parse_args(args):
parser = argparse.ArgumentParser(
description='Script to configure appliance.'
)
parser.add_argument('--config_file',
help='Path to a JSON configuration file')
print parser.parse_args(args)
return parser.parse_args(args)

现在你可以这样调用它:

self.assertEquals(my_script._parse_args(["--config_file", "test"]).config_file,"test")

关于Python单元测试: Mimic a command line argument for test purposes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com