gue*_*tli 6 python unit-testing pytest python-2.7 python-unittest
如果我这样称呼它,我会看到一个很好的差异:
self.assertEqual(a, b)
Run Code Online (Sandbox Code Playgroud)
如果我这样称呼它,我只看到msg:
self.assertEqual(a, b, msg)
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来显示差异和消息?
实现assertEqual()自己会起作用,但我问自己这是否真的是最好的方法.
Plattform:Python2.7和pytest 2.6.2.
如果您设置longMessageattribute True,您将看到两条消息。
例:
class TestFoo(unittest.TestCase):
longMessage = True # <--
def test_foo(self):
self.assertEqual(1+2, 2, 'custom message')
Run Code Online (Sandbox Code Playgroud)
输出:
F
======================================================================
FAIL: test_foo (__main__.TestFoo)
----------------------------------------------------------------------
Traceback (most recent call last):
File "t.py", line 6, in test_foo
self.assertEqual(1+2, 2, 'custom message')
AssertionError: 3 != 2 : custom message
----------------------------------------------------------------------
Ran 1 test in 0.000s
Run Code Online (Sandbox Code Playgroud)
由于您使用的是 pytest,因此您还可以使用 pytest 的简单断言而不是单元测试兼容性:
def test_foo():
assert "abcdefg" == "abcde", "My message"
Run Code Online (Sandbox Code Playgroud)
输出:
====================== FAILURES ======================
______________________ test_foo ______________________
def test_foo():
> assert "abcdefg" == "abcde", "My message"
E AssertionError: My message
E assert 'abcdefg' == 'abcde'
E - abcdefg
E ? --
E + abcde
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1063 次 |
| 最近记录: |