使用Jenkins CI进行单元测试

时间:2012-11-28 07:05:34

标签: php android ios jenkins continuous-integration

我正在为我的开发团队研究Jenkins,并开始意识到我最终想要的是更多的单元测试和更少的集成。

此时我对Jenkins的集成或部署不是很感兴趣。我现在最想要的是在提交代码时自动化测试,并在出现问题时向开发人员报告。

Jenkins对我正在努力完成的工作仍然是一个很好的解决方案吗?

如果是,我是否需要先编写所有单元测试,然后将它们添加到Jenkins?我是否需要为每个单元测试提供Jenkins工作,还是可以将多个单元测试合并到一个Jenkins工作中?

最终,我想自动测试PHP,Java(适用于Android)和Objective-C(iOS)。

谢谢!

分贝

2 个答案:

答案 0 :(得分:2)

是Jenkins绝对是一个有效的解决方案,它将允许您运行Android和iOS的测试。对于Php我不能说,但我想是的。

Jenkins基本上是一个脚本运行器,可以插入scm并运行由scm更改触发的脚本。所以编写你的测试,在你的机器上运行它们,然后找到一种方法让它们通过Jenkins自动运行每次提交:这就是CI的本质。

对于Android和iOS,运行构建作业和执行测试有点棘手,因为您需要构建来运行模拟器(尽管如果您足够富有,您仍然可以将设备连接到服务器)。还有一些像Jenkins Android模拟器插件那样的插件。

答案 1 :(得分:0)

是的,Jenkins(以及几乎任何其他名副其实的CI工具)绝对能够运行单元测试。

除了术语:“集成”是“持续集成”意味着“集成测试”(尽管你当然可以运行它们)。它指的是“整合变化”,即签到。现在好了(谢天谢地!)早已不复存在,这不是特定的:开发人员可以在没有办理登机手续的情况下连续几周,或者只能查看个人分支机构。将代码集成到主线可能需要数周时间。解决这个问题的(然后是革命性的)想法是:每晚构建,因此称为“夜间构建”。自然扩展是连续构建,这需要服务器轮询CM系统以进行更改。

使用该透视图,您无法在没有集成的情况下运行单元测试,因为您通常必须首先构建,然后进行单元测试。如上所述:詹金斯已经strong support for unit testing:它将很容易被建模为顶级的单一职位。

参见这个家族中更强大(和更昂贵)的动物,如Electric Commander