The nose testing suite applies introspection to asserts.
Однако AFAICT, вы должны вызвать их утверждает, чтобы получить самоанализ:
import nose
def test1():
nose.tools.assert_equal(6, 5+2)
результаты в
C:\temp\py>C:\Python26\Scripts\nosetests.exe -d test.py
F
======================================================================
FAIL: test.test1
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python26\lib\site-packages\nose-0.11.1-py2.6.egg\nose\case.py", line
183, in runTest
self.test(*self.arg)
File "C:\temp\py\test.py", line 3, in test1
nose.tools.assert_equal(6, 5+2)
AssertionError: 6 != 7
>> raise self.failureException, \
(None or '%r != %r' % (6, 7))
Обратите внимание на AssertionError там. Когда моя линия была просто assert 6 == 5+2
, я хотел бы получить:
C:\temp\py>C:\Python26\Scripts\nosetests.exe -d test.py
F
======================================================================
FAIL: test.test1
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python26\lib\site-packages\nose-0.11.1-py2.6.egg\nose\case.py", line
183, in runTest
self.test(*self.arg)
File "C:\temp\py\test.py", line 2, in test1
assert 6 == 5 + 2
AssertionError:
>> assert 6 == 5 + 2
Кроме того, я не уверен, экспромтом, если их Утверждает пропускаются с -O
, но это было бы очень быстро проверить.
Конечно, я знал, что это. Я не хочу писать один, поскольку он закодирован в выражении, которое утверждается. DRY. –
Я понимаю, что вы имеете в виду. Я не верю, что у Python есть способ сделать это. –