Вопрос

In a bunch of tests that I'm running using nosetests, an assertEqual(a,b) fails, a and b (pretty long strings) are printed verbatim filling the screen, obfuscating everything else. You can create similar situation by adding this to one of your test cases:

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

I tried setting --verbosity=0 and --debug-log=File, but none of them had any effect, and the two strings are still printed on the screen.

Is there anyway to shutup the assertEqual verbosity or redirect it to a separate file other than stderr (where test failures/passes are also reported)?

Это было полезно?

Решение

assertEqual takes as a third parameter an assertion message for failure.

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

prints the stack trace of the failing location plus

AssertionError: a did not equal b

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top