python unittests assertEqual在失败时打印太多

时间:2014-05-01 20:13:35

标签: python assert error-logging nosetests python-unittest

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

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

我尝试设置--verbosity=0--debug-log=File,但没有任何效果,并且两个字符串仍然在屏幕上打印。

是否有关闭assertEqual详细程度或将其重定向到除stderr以外的单独文件(还报告了测试失败/通过)?

1 个答案:

答案 0 :(得分:8)

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