Python测试用于测试输入文件及其输出的“框架”

2024-05-23 13:50:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的工具编写端到端测试,它是用Python编写的。该工具读取文件作为输入。我想测试它的退出代码和输出。在

这是一个相当常见的习惯用法,我见过有几种方法。在PHP项目中,每个测试都是一个文件,并且有如下的行:INPUT:EXPECTED:EXPECTED_REGEX:等等。在我自己的phc项目中,每个文件都是一个普通的源文件,但是在顶部添加了一个注释,其中包括关键字EXPECTED。我想我已经复制了gcc,它使用了一个用tcl编写的更复杂的工具。在

在Python中是否有这样的框架、库等?它应该:

  • 读取源文件
  • 解析与预期输出、退出代码、它希望找到或找不到的单词/正则表达式相对应的特殊关键字(或类似关键字)
  • 检查输出是否正确。在

虽然理论上看起来并不难,但我记得以前在实现这一点时有很多边缘情况(尤其是涉及逃逸),我宁愿不重新发明轮子。在


Tags: 文件工具项目方法代码input关键字tcl
3条回答

机器人框架可能会有所帮助。它是一个用python实现的关键字驱动的功能测试工具,可以用pythion或java进行扩展。在

参见:http://robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html

您可以应用许多内置库来解决问题,包括用于处理文件等的OperatingSystem库和用于处理字符串的字符串库:

http://robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html#standard-libraries

还有一个图书馆。在

既然文件io的实现依赖于系统,为什么不模拟使用StringIO的文件读写:

http://docs.python.org/library/stringio.html

然后用python测试大部分逻辑(从文件中读取、执行某些操作、写入文件)?在

然后,也许您可以通过使用commands模块或类似的方法对脚本进行一个单独的python文件调用,以作为另一个进程调用它:

http://docs.python.org/library/commands.html

使用它你可以得到输出和状态。在

相关问题 更多 >