gpt4 book ai didi

Python单元测试: Assertion Error issue

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

我正在为以下函数编写单元测试:

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()

当我在没有给出配置文件的情况下运行该函数时(使用上面函数中的 print 语句进行验证):parser.parse_args()=命名空间(config_file=None)

在我的单元测试中,我在没有给出配置文件的情况下运行该函数,并包含一个assertEquals:

self.assertEquals(my_script._parse_args(), 'Namespace(config_file=None)')

但这会产生断言错误:

AssertionError: Namespace(config_file=None) != 'Namespace(config_file=None)'

如果我将单元测试更改为不带引号:

self.assertEquals(my_script._parse_args(), Namespace(config_file=None))

我收到一个名称错误:

NameError: global name 'Namespace' is not defined

显然使用引号不是正确的方法,但我如何让它断言 Namespace(config_file=None) 正在发生?

最佳答案

改变

self.assertEquals(my_script._parse_args(), Namespace(config_file=None))

self.assertEquals(my_script._parse_args(), argparse.Namespace(config_file=None))

Namespace 是您导入的 argparse 模块的一个属性。您没有单独导入 Namespace

不带参数执行代码的演示:

print _parse_args() == argparse.Namespace(config_file=None) # True

关于Python单元测试: Assertion Error issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36331131/

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