2

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

这是一个相当普遍的习语,我已经看到它以多种方式完成。在 PHP 项目中,每个测试都是一个文件,其中包含:、、、等行INPUT:EXPECTED:EXPECTED_REGEX:我自己的phc项目中,每个文件都是一个普通的源文件,但在顶部添加了注释,其中包含诸如EXPECTED. 我想我已经从gcc复制了它,它使用了一个用 tcl 编写的更复杂的工具。

是否有在 Python 中执行此操作的框架、库等?它应该:

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

虽然这在理论上似乎并不难,但我记得在之前实现这个时有很多边缘情况(尤其是涉及转义),并且宁愿不重新发明轮子。

4

3 回答 3

3

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

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

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

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

于 2010-11-08T10:52:37.740 回答
1

Ian Bicking还有一个http://pythonpaste.org/scripttest/库。

于 2010-12-25T13:01:54.360 回答
0

既然文件 io 的实现是系统依赖的,何不模拟出使用 StringIO 进行文件读写:

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

然后在python中测试大部分逻辑(从文件中读取,做一些事情,写入文件)?

然后,也许您可​​以通过使用模块或类似的方式调用脚本来调用单独的 python 文件来测试基本的健全性,commands这样您就可以将其作为另一个进程调用:

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

使用它,您可以获得输出和状态。

于 2010-11-08T03:36:50.930 回答