当使用带有Python 3.3.0的nose 1.2.1时,我有时会得到类似于下面的错误消息
======================================================================
FAIL: maxdiff2.test_equal
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/lib/python3.3/site-packages/nose/case.py", line 198, in runTest
self.test(*self.arg)
File "/Users/loic/cmrsj/Calculus_II/scrap/maxdiff2.py", line 32, in test_equal
assert_equal(str1, str2)
AssertionError: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a
diam lectus.\n [truncated]... != 'Suspendisse lectus leo, consectetur in tempor sit
amet, placerat quis neque.\nE [truncated]...
Diff is 1780 characters long. Set self.maxDiff to None to see it.
----------------------------------------------------------------------
Ran 1 test in 0.064s
FAILED (failures=1)
Run Code Online (Sandbox Code Playgroud)
在许多情况下,为了弄清楚错误究竟是什么,我需要看到完整的diff输出.但是,我不知道如何设置它self.maxDiff.谷歌搜索鼻子和maxDiff没有帮助.在Python 2.7.1上使用相同版本的nose,将完整差异打印到屏幕上.
这是一个简单的脚本,在运行时生成上面的错误nosetests-3.3 …
你好,有这个非常基本的测试:
def test_long_diff():
long_str1 = "ABCDEFGHIJ " * 10
long_str2 = "ABCDEFGHIJ " * 5 + "* " + "ABCDEFGHIJ " * 5
assert long_str1 == long_str2
Run Code Online (Sandbox Code Playgroud)
使用:Python 3.8.5、pytest-6.2.1、PyCharm 2020.2、MacO
从 shell 运行 pytest,输出是“可用的”,并且错误消息将指出长字符串中的错误字符:
(venv) ~/dev/testdiff/> pytest longdiff.py
========== test session starts ===========
platform darwin -- Python 3.8.5, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
[...]
> assert long_str1 == long_str2
E AssertionError: assert 'ABCDEFGHIJ A...J ABCDEFGHIJ ' == 'ABCDEFGHIJ A...J ABCDEFGHIJ '
E Skipping 45 identical leading characters in diff, use -v to …Run Code Online (Sandbox Code Playgroud)