我正在为我的工具编写端到端测试,该工具是用 Python 编写的。该工具读取文件作为输入。我想测试它的退出代码和它的输出。
这是一个相当普遍的习语,我已经看到它以多种方式完成。在 PHP 项目中,每个测试都是一个文件,其中包含:、、、等行INPUT:
。EXPECTED:
在EXPECTED_REGEX:
我自己的phc项目中,每个文件都是一个普通的源文件,但在顶部添加了注释,其中包含诸如EXPECTED
. 我想我已经从gcc复制了它,它使用了一个用 tcl 编写的更复杂的工具。
是否有在 Python 中执行此操作的框架、库等?它应该:
- 读取源文件
- 解析对应于预期输出的特殊关键字(或类似关键字)、退出代码、预期找到或未找到的单词/正则表达式,
- 检查输出是否正确。
虽然这在理论上似乎并不难,但我记得在之前实现这个时有很多边缘情况(尤其是涉及转义),并且宁愿不重新发明轮子。