testfunctions中的Python名称错误
这个问题我遇到过好几次,不知道如何处理。我的许多测试函数(例如testfunctions中的Python名称错误,python,nameerror,Python,Nameerror,这个问题我遇到过好几次,不知道如何处理。我的许多测试函数(例如test\u add)返回一个namererror,尽管测试函数存在。例如: def test_add(): '''Testfunction for add''' assert add(1)==[1] assert add(2)==[1, 2] assert add(3)==[1, 2, 3] def add(n): pass 有什么问题吗 好的,下面是实际代码: def test_add(): '''
test\u add
)返回一个namererror
,尽管测试函数存在。例如:
def test_add():
'''Testfunction for add'''
assert add(1)==[1]
assert add(2)==[1, 2]
assert add(3)==[1, 2, 3]
def add(n):
pass
有什么问题吗
好的,下面是实际代码:
def test_add():
'''Testfunction for add'''
assert add(1)==li+[1]
assert add(2)==li+[1, 2]
assert add(3)==li+[1, 2, 3]
def add(n):
'''Adds a new element to the list of scores.
n is an integer number between 1 and 100.
Returns the new list'''
global li
li.append(n)
return li
这是一个更长的项目的一部分,所以我不能全部发布。当我运行testfunction时,它会给我一个nameerror,表示没有定义“add”。您发布的代码不会抛出
nameerror
。无论您在实际代码中做什么,都是不同的。您可能应该发布实际的、可运行的代码(您自己已经发布并看到了错误)。该代码将给出断言错误,而不是名称错误。您能提供一个可复制的示例吗?是的,没有名称,所以没有名称错误。除了函数add()
——您确定它不在单独的文件或范围内,因此无法从内部访问test\u add()
?正如@Daniel Roseman指出的,您的代码(包括实际代码)生成AssertionError
s notNameErrors
——这是正确的,因为列表add()
returns中已经添加了数字,因此与再次添加数字不同。