Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改python(2.7)测试的测试描述_Python_Unit Testing_Docstring - Fatal编程技术网

如何更改python(2.7)测试的测试描述

如何更改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) 测试食物。。。好的 第一行描述是无用的。我想隐藏它,但不知道如何隐藏。考虑到您已

在Python2.7中,unittest模块似乎已经改变了很多

我有一个测试用例:

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())
谢谢!如果没有这个调整,您将得到上面的异常,而不是测试或代码中的任何错误。我可以将描述值存储在变量中吗?怎么用?是否有可能抑制第二行测试结果。。。也