单元测试嵌入式python

时间:2012-10-30 11:21:16

标签: python unit-testing

我有一个第三方软件,可以使用以下内容运行一些python脚本:

software.exe -script pythonscript.py

我的公司非常依赖这个软件以及我们为它开发的脚本。目前我们有一些QA可以检查脚本的输出,但是我们真的想开始对脚本进行单元测试,以便更容易找到错误并使测试系统更加完整。

我的问题是如何运行“嵌入式”单元测试?我们使用pydev + eclipse,并尝试使用它的remote debbuging使其与单元测试一起使用,但我无法真正使其工作。如何让服务器连接“馈送”单元测试?

另一个想法是解析软件的标准,但这并不是一个单元测试...而且它带来的额外复杂性使得这种方法不那么有趣。

我希望这样的事情已经在其他地方完成了,我试着用Google搜索,但也许我只是没有使用正确的关键字。谁能给我一个起点?

谢谢

3 个答案:

答案 0 :(得分:1)

更多信息会有所帮助。您使用的是测试框架(例如unittest或nose),如果没有,测试结构如何?什么是software.exe

在python中,单元测试实际上只是一组在失败时引发异常的函数,因此可以像任何其他函数一样从脚本中调用它们。因此,理论上,您可以简单地创建一个测试运行器(如果您还没有使用诸如鼻子之类的那个),并将其作为software.exe -script runtests.py运行。在pydev中,您可以将software.exe设置为自定义的python解释器。

如果问题是software.exe隐藏了stdout,那么只需将结果写入日志文件即可。您还可以创建一个模拟由software.exe提供的环境并使用python.exe运行测试。

答案 1 :(得分:0)

如果单元测试是针对您的代码而不是software.exe提供的功能,那么您可以在必要时使用独立的python模拟software.exe部分来运行测试。作为中间步骤,您可以尝试使用`software.exe'

运行基于unittest的脚本

答案 2 :(得分:0)

嗯,一般来说,测试软件应该由持续集成套件完成(Jenkins是你的朋友)。

现在,我认为您必须通过在python脚本中设置test()函数来测试脚本pythonscript.py,该函数将模拟您将为脚本的入口点提供的可能环境。并且您将能够使用unittest来执行所有脚本的测试功能。您也可以在doctests中嵌入测试,但我个人不喜欢这样。

然后,在software.exe中,您将能够通过模拟所有环境组合来执行测试。但是,由于你没有多说software.exe我将无法帮助你更多...(什么语言?software.exe已经过单元测试?)