2017-01-23 76 views
2

我發現了關於shortDescription函數,並且急於嘗試它。Python單元測試shortDescription打印無

shortDescription() 返回測試的描述,如果沒有提供描述,則返回None。此方法的默認實現返回測試方法文檔字符串的第一行(如果可用)或無。

奇怪的是,我無法讓它工作。 任何人都可以發現我做錯了什麼?

我的類並從unittest.TestCase繼承,甚至它有一個文檔字符串

def test_smth(self): 
    """ 
    TEST 
    """ 
    self.description = 'TEST!' 
    print(self.shortDescription()) 

打印出None在Python 3.6

+4

嘗試在文檔字符串的第一行放置'TEST'行:''「」TEST other stuff 「」「'... – Bakuriu

+1

另外,'test_smth()'是您的類的一種方法嗎? 'self'參數在哪裏? – nickie

+0

只要你做這些事情,它就可以工作。 – denvaar

回答

3

文檔字符串的第一行是空:

""" <--- this is the first line 
TEST 
""" 

通過刪除第一個空行,您將看到你想要的:

"""TEST 
""" 

➜ /tmp cat t.py 
import unittest 

class UT(unittest.TestCase): 
    def test_smth(self): 
     """TEST""" 
     print('shortDescription():', self.shortDescription()) 


unittest.main() 
➜ /tmp python3.6 t.py 
shortDescription(): TEST 
. 
---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 

如果您用-v命令行選項的測試,可以看到印刷的,而不是測試方法名稱說明:在你的函數參數

➜ /tmp python3.6 t.py -v 
test_smth (__main__.UT) 
TEST ... shortDescription(): TEST 
ok 

---------------------------------------------------------------------- 
Ran 1 test in 0.000s 

OK 
+0

現貨!謝謝 – Nether

1

你只是缺少self 。其餘的東西都很好去。 試一試。