2017-01-23 79 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 。其余的东西都很好去。 试一试。