相关疑难解决方法(0)

如何在鼻子中设置self.maxDiff以获得完整的diff输出?

当使用带有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 …

python nose

63
推荐指数
4
解决办法
2万
查看次数

使用 pytest + Pycharm 的长字符串的烦人 diff 格式

你好,有这个非常基本的测试:

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)

python pytest pycharm

5
推荐指数
1
解决办法
1203
查看次数

标签 统计

python ×2

nose ×1

pycharm ×1

pytest ×1