有没有一种标准的方法来测试Jenkins中的脚本/可执行文件?

时间:2012-03-06 16:11:52

标签: unit-testing testing continuous-integration jenkins jenkins-plugins

我们有一个包含Python和Scala包的库,以及Bourne,Python和Perl可执行脚本。虽然该库具有良好的测试覆盖率,但我们没有对脚本进行任何测试。

目前的测试环境使用Jenkins,Python,virtualenv,nose,Scala和sbt。

是否有一种标准/通用方法可以在Jenkins中整合脚本测试?


编辑:我希望像Python的shell脚本单元测试一样简单,像这样:

assertEquals expected.txt commandline
assertError commandline --bogus
assertStatus 11 commandline baddata.in

3 个答案:

答案 0 :(得分:4)

你看过shunit2:http://code.google.com/p/shunit2/

它允许您使用Bourne,bash或ksh脚本编写可测试的shell脚本。

不确定如何将其集成到您所描述的内容中,但它会生成类似于其他单元测试套件的输出。

答案 1 :(得分:1)

我不知道这是怎么'标准',但如果你真的练习TDD,你的脚本也应该用TDD开发。然后,如何将您的TDD测试与Jenkins连接取决于您正在使用的TDD框架:您可以生成JUnit报告,例如,Jenkins可以读取,或者您的测试可以简单地返回失败状态等。

答案 2 :(得分:0)

如果你的脚本需要另一个项目,那么我倾向于制作一个新的jenkins项目,比如'system-qa'。

这将是python项目的下游项目,并且依赖于python项目和内部项目。

如果您使用依赖项解析/发布技术,请说apache ivy http://ant.apache.org/ivy/,以及这些现有项目是否要发布其代码的打包版本(就像也许是.tar.gz,然后system-qa项目可以为python包和内部项目包声明依赖(再次使用常春藤),使用常春藤下载,提取/安装,运行测试,并退出。

总而言之,system-qa项目的构建脚本负责检索依赖项,针对这些依赖项运行测试,然后可能发布标准化的输出测试格式,如junit xml(但至少返回0或非0到詹金斯知道建筑是怎么回事。

我认为这是技术上正确的解决方案,但也有很多工作要做。如果值得,则需要进行判断。