我们有一个包含Python和Scala包库的项目,以及Bourne、Python和Perl可执行脚本。虽然这个库有很好的测试覆盖率,但是我们没有任何关于脚本的测试。
当前的测试环境使用Jenkins、Python、virtualenv、鼻子、Scala和sbt。
在Jenkins中是否有一种标准/通用的方法来合并脚本测试?
编辑:我希望得到一些简单的东西,比如Python对shell脚本的单元测试,如下所示:
assertEquals expected.txt commandline
assertError commandline --bogus
assertStatus 11 commandline baddata.in发布于 2012-04-08 19:11:14
你看过shunit2:https://github.com/kward/shunit2吗?
它允许您用Bourne、bash或ksh脚本编写可测试的shell脚本。
不确定如何将其集成到您所描述的内容中,但它生成的输出类似于其他单元测试套件。
发布于 2012-03-06 16:32:47
我不知道这是什么“标准”,但如果您真正实践了TDD,您的脚本也应该用TDD开发。那么,如何将TDD测试与Jenkins连接取决于您正在使用的TDD框架:您可以生成JUnit报告,例如Jenkins可以读取这些报告,或者您的测试可以返回失败状态,等等。
发布于 2012-03-06 21:20:10
如果您的脚本需要另一个项目,那么我倾向于创建一个新的jenkins项目,比如“system”。
这将是python项目的下游项目,并且依赖于python项目和内部项目。
如果您使用的是依赖解析/发布技术,比如阿帕奇常春藤 http://ant.apache.org/ivy/,如果这些现有的项目要发布其代码的打包版本(可能就像.tar.gz一样简单),那么system项目就可以声明python包和内部项目包的依赖项(同样是使用ivy ),使用常春藤下载它,提取/安装它,运行测试和退出。
因此,总之,system项目的构建脚本负责检索依赖项,对这些依赖项运行测试,然后可能发布一个标准化的输出测试格式,比如junit xml (但至少返回0或非0来提示Jenkins构建过程如何进行)。
我认为这是一个技术上正确的解决方案,但也有很多工作。如果值得的话就需要判断力。
https://stackoverflow.com/questions/9587512
复制相似问题