0

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

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

詹金斯仍然是我想要完成的一个很好的解决方案吗?

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

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

谢谢!

D b

4

2 回答 2

2

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

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

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

于 2012-11-28T07:10:25.113 回答
0

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

关于术语的旁白:“集成”是“持续集成”并不意味着“集成测试”(尽管您当然也可以运行它们)。它指的是“集成更改”,即签入。现在(谢天谢地!)早就过去了,这不是给定的:开发人员可以连续数周不签入,或者只签入个人分支。将代码集成到主线可能需要数周时间。解决这个问题的(当时革命性的)想法是:每晚构建,因此称为“夜间构建”。自然的扩展是持续构建,这需要服务器轮询 CM 系统以进行更改。

从这个角度来看,没有集成就无法运行单元测试,因为通常必须先构建,然后进行单元测试。如上所述:Jenkins对单元测试有很强的支持:它将很容易地建模为顶层的单一工作。

另请参阅该家族中更强大(且更昂贵)的动物,例如Electric Commander

于 2012-11-28T07:16:01.820 回答