在我正在使用nosetests运行的一系列测试中,assertEqual(a,b)失败,ab(相当长的字符串)被逐字打印出来填充屏幕,混淆了所有其他内容。通过将其添加到测试用例中,可以创建类似的情况:

def test_my_long_strings(self):
    self.assertEqual('a'*5000, 'b'*5000)

我试过设置--verbosity=0--debug-log=File,但没有一个产生任何效果,这两个字符串仍然打印在屏幕上。
是否仍要关闭assertEqual详细信息或将其重定向到stderr以外的单独文件(其中还报告了测试失败/通过)?

最佳答案

assertEqual将失败的断言消息作为第三个参数。

class TestMyTest(unittest.TestCase):
    def test_example(self):
        a = 'a'
        b = 'b'
        self.assertEqual(a, b, 'a did not equal b')

打印失败位置的堆栈跟踪
AssertionError: a did not equal b

参考:
https://docs.python.org/2/library/unittest.html#unittest.TestCase.assertEqual

关于python - python unittests assertEqual打印失败时太多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23415810/

10-13 09:23