如何比较两个文件作为单元测试的一部分,同时在不匹配的情况下获得有用的输出?

新手上路,请多包涵

作为使用 unittest 框架的一些 Python 测试的一部分,我需要比较两个相对较短的文本文件,其中一个是测试输出文件,另一个是参考文件。

直接的方法是:

 import filecmp
...
self.assertTrue(filecmp.cmp(tst_path, ref_path, shallow=False))

如果测试通过,它工作正常,但即使失败,输出也没有太大帮助:

AssertionError: False 不是真的

作为 unittest 框架的一部分,是否有更好的方法来比较两个文件,以便在不匹配的情况下生成一些有用的输出?

原文由 EquipDev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 570
1 个回答

要获得哪一行有差异的报告,以及该行的打印输出,请在内容上使用 assertListEqual ,例如

import io

self.assertListEqual(
    list(io.open(tst_path)),
    list(io.open(ref_path)))

原文由 Ethan Bradford 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题