2012-11-03 76 views
-3

我遇到過這個問題好幾次了,不知道該如何處理它。我的許多測試功能(例如test_add)返回NameError,但測試的功能在那裏。例如:Python的NameError在testfunctions

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時,它給了我一個名稱錯誤,說'add'沒有被定義。

+1

該代碼將給出一個AssertionError,而不是NameError。 –

+0

你能提供一個可重現的例子嗎? –

+0

是的,沒有名字,所以沒有NameError。除了函數'add()' - 你確定它不在單獨的文件或作用域中,因此無法從'test_add()'內部到達嗎? –

回答

0

您發佈的代碼不會拋出NameError。無論你在做什麼實際代碼是不同的。你應該可以發佈你的實際的,可運行的代碼(你自己跑過了,看到了錯誤)。