我正在使用"unittest"框架编写一些Python单元测试,并在PyCharm中运行它们.一些测试将长生成的字符串与从文件读取的参考值进行比较.如果这个比较失败,我希望看到两个比较字符串的差异使用PyCharms差异查看器.
所以代码是这样的:
actual = open("actual.csv").read()
expected = pkg_resources.resource_string('my_package', 'expected.csv').decode('utf8')
self.assertMultiLineEqual(actual, expected)
Run Code Online (Sandbox Code Playgroud)
并且PyCharm很好地将测试识别为失败,并在结果窗口中提供一个链接以单击打开diff查看器.但是,由于unittest如何缩短结果,我在diff查看器中得到了这样的结果:
左边:
'时间[57个字符] ercent 0; 1; 1; 1; 1; 1; 1; 1 0; 2; 1; 3; 4; 2; 3; 1 0; 3; [110 chars] 32'
右边:
'time [57 chars] ercen 0; 1; 1; 1; 1; 1; 1; 1 0; 2; 1; 3; 4; 2; 3; 1 0; 3; 2 [109 chars] 32'
现在,我想摆脱所有[X字符]部分,只看到整个文件和PyCharm完全可视化的实际差异.
我试图查看unittest代码,但找不到配置选项来打印完整的结果.有一些变量,如maxDiff和_diffThreshold,但它们对此打印没有影响.
此外,我试图在py.test中运行它,但在PyCharm中的支持甚至更少(甚至没有链接到失败的测试).
是否有一些技巧使用difflib与unittest或者其他一些Python测试框架的其他技巧来做到这一点?