繁体   English   中英

嵌入式Python单元测试

[英]unit testing embedded python

我有一个第三方软件,该软件能够使用以下方式运行一些python脚本:

software.exe -script pythonscript.py

我的公司严重依赖此软件以及我们为其开发的脚本。 当前,我们有一些QA检查脚本的输出,但是我们确实希望开始对脚本进行单元测试,以使查找错误和使测试系统更完整变得更加容易。

我的问题是如何运行“嵌入式”单元测试? 我们使用pydev + eclipse,我尝试使用它的远程调试功能使其可以与单元测试一起使用,但是我不能真正使其工作。 如何使服务器连接“供稿”单元测试?

另一个想法是解析软件的标准配置,但这并不是真正的单元测试……而且似乎带来的额外复杂性使这种方法变得不太有趣。

我希望类似的事情已经在其他地方完成,因此我尝试使用谷歌搜索,但是也许我只是没有使用正确的关键字。 谁能给我一个起点?

谢谢

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

在python中,单元测试实际上仅是一个函数集合,这些函数会在失败时引发异常,因此可以像其他任何函数一样从脚本中调用它们。 因此,从理论上讲,您可以简单地创建一个测试运行器(如果您尚未使用过鼻子),然后将其作为software.exe -script runtests.py运行。 在pydev中,您可以将software.exe设置为自定义的python解释器。

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

如果单元测试是针对您的代码的,而不是针对software.exe提供的功能的,则可以在必要时使用独立的python模拟software.exe部件来运行测试。 作为一个中间步骤,你可以尝试运行unittest使用`software.exe”基于脚本

好吧,通常来说,测试软件应该由持续集成套件完成(而Jenkins是您的朋友)。

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

然后,在您的software.exe ,您可以通过模拟所有环境组合来执行测试。 但是,由于您对software.exe发言不多,因此我将无法为您提供更多帮助...(哪种语言? software.exe已进行了单元测试?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM