2010-11-08 67 views
2

我正在为使用Python编写的工具编写端到端测试。该工具读取一个文件作为输入。我想测试它的退出代码和它的输出。用于测试输入文件及其输出的Python测试“框架”

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

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

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

尽管从理论上看似乎并不难,但在实施之前我还记得很多边缘案例(尤其包括转义),而不是重新发明轮子。

回答

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

+0

这看起来像我在找什么。 – 2010-11-08 16:07:52

0

由于文件IO的实现是依赖于系统的,为什么不模拟出文件读出和使用书写StringIO的:

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

,然后测试该散装的逻辑(从文件中读取,做一些东西,写入一个文件)在Python中?

,那么,也许你可以有一端由具有单独的Python文件叫出使用commands模块或类似的脚本来结束对基本的完整性测试,让你在呼唤它作为另一个进程:

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

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

+0

从你的回答来看,我相信我可能错误地提出了这个问题。我重写了大部分内容,希望现在更清楚。 – 2010-11-08 16:07:04

+0

哦,我现在看到,看起来好像马克有你的答案:) – 2010-11-08 20:34:59