场景 1:我最近一直在使用 CI 工具 Jenkins,以使用 Maven 集成我的 Selenium WebDriver 测试。我理解持续集成(相对于测试)是一个概念,只要开发人员 checkin 某些构建(我们称之为 Build#666),测试就会自动触发。这有助于我们在早期阶段识别错误。
场景 2:现在假设我在不使用 Jenkins 的情况下运行相同的测试。假设我什至不使用 Maven,我只需右键单击我的 TestNG 套件并针对 Build#666 运行它(这意味着我会在 checkin Build#666 的代码后立即手动启动自动化测试运行) .
除了 Jenkins 允许自动运行测试(无需像场景 2 中那样进行手动干预)并具有在所需时间安排测试的功能之外,最大的区别是什么?
→ 我是否也可以将场景 2 视为持续集成,因为我正在针对同一构建部署相同的测试,但我不使用 CI 工具,而是手动进行?
最佳答案
使用 CI 服务器而不是本地构建和测试的原因有很多(Jenkins 只是众多选项之一):
CI 服务器提供运行测试的已知环境。开发者机器通常需要手动配置,因此测试结果可能会因安装的软件版本、环境配置等不同而有所不同。
CI 服务器可以通过在比开发机器更好或更多的硬件上运行来加快构建速度。
CI 服务器提供不同构建之间的依赖关系等功能,否则您必须自己实现(脚本)这些功能。
CI 服务器是构建工件的存储库:编译和/或打包的软件,以及代码覆盖率和静态分析结果等分析结果。
与工程师不同,CI 服务器可以运行构建
- 立即
- 白天或晚上的任何时间
- 没有假期。
使用 CI 服务器比让工程师做同样的工作更便宜。
倒数第二点意味着不,如果您没有自动运行构建,那么您就没有进行 CI。自动化将“C”置于 CI 中。
关于jenkins - 在持续集成中运行测试与手动运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37187017/