如何更改python(2.7)测试的测试描述
在Python2.7中,unittest模块似乎已经改变了很多 我有一个测试用例:如何更改python(2.7)测试的测试描述,python,unit-testing,docstring,Python,Unit Testing,Docstring,在Python2.7中,unittest模块似乎已经改变了很多 我有一个测试用例: class DemoTest(unittest.TestCase): def test_foo(self): """Test foo""" pass 控制台输出为: 测试食物。。。好的 升级到Python 2.7后,控制台输出现在是: test\u foo(testcase.demost.demost) 测试食物。。。好的 第一行描述是无用的。我想隐藏它,但不知道如何隐藏。考虑到您已
class DemoTest(unittest.TestCase):
def test_foo(self):
"""Test foo"""
pass
控制台输出为:
测试食物。。。好的
升级到Python 2.7后,控制台输出现在是:
test\u foo(testcase.demost.demost)
测试食物。。。好的
第一行描述是无用的。我想隐藏它,但不知道如何隐藏。考虑到您已经费心为测试编写了docstring,额外的输出看起来有点多余。下面是一种可以抑制的方法;您需要将以下内容添加到测试文件的顶部:
from unittest.runner import TextTestResult
TextTestResult.getDescription = lambda _, test: test.shortDescription()
我喜欢早上猴子打补丁的味道。呵呵,我同意,我希望在2.7中有一种不那么刺耳的方式。我尝试了其他一些方法,但最终这是生成所需输出的最短路径。当我在python 2.7上尝试此方法时,我得到了“TypeError:应为字符缓冲区对象”,它可以通过转换为字符串来修复:
TextTestResult.getDescription=lambda\ux,test:str(test.shortDescription())
谢谢!如果没有这个调整,您将得到上面的异常,而不是测试或代码中的任何错误。我可以将描述值存储在变量中吗?怎么用?是否有可能抑制第二行测试结果。。。也