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

标签 python python-3.x python-unittest

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

直接的方法是:

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

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

AssertionError: False is not true



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

最佳答案

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

import io

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

关于python - 如何比较两个文件作为单元测试的一部分,同时在不匹配的情况下获得有用的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42512016/

相关文章:

python - 让 PyQt4 在按下按钮时打开另一个 Qt 窗口

python - 按 Pandas 数据框中的时间段计算一列

mocking - 如何模拟 boto3 的 SES 版本 2 API?

python - 为什么我的 python 包没有发现用于单元测试的类?

python-mock: 'self'参数缺少默认值

python - 如何在AWS lambda (python)中上传zip文件夹而不存储在S3中

python - 为什么这个主要测试有效?

python - 在 antlr4 python3 目标中将 java 转换为 python

python - 如何使用biopython提取和修剪fasta序列

python - 如何获取以编程方式声明的 Python 类的源代码?