我在Python 3中使用unittest.TestCase,当assertEqual发现问题时需要打印更多信息。
我的测试功能包括声明:
else {//missing
pst.setString(6,"Report");
pst.setString(3,"success"); //without brackets, this line does not falls under else block
}//missing
发现错误后,应该打印self.assertEqual(result, exp_result, "Test_svg_glyph_scale test #" + str(test_num))
和result
以及调用exp_result
时的字符串。但是,它会截断assertEqual
和__repr__
的{{1}}输出:
result
我希望看到那些[15个字符]和[75个字符],所以我确切知道返回和预期的内容(好吧,我知道这个)并且能够轻松地比较它们。
exp_result
似乎仅适用于字符串比较。我想比较两种结构。
我可以更改设置以打印所有字符吗?
答案 0 :(得分:0)
我还想禁用这种非常奇怪的Python 3行为。似乎唯一的方法是修复它是直接修补unittest.util模块:
unittest.util._MAX_LENGTH = 160 # Default is 80, so this doubles it
在此之后所有" [25个字符]"字符串不见了,我可以再次读取测试失败的输出。
(供参考,受影响的代码util.py is on GitHub)