jenkins - 在持续集成中运行测试与手动运行测试

标签 jenkins continuous-integration regression-testing

场景 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/

相关文章:

protractor - 有没有办法将公共(public)特征文件导入 cucumber 中的另一个特征文件

Jenkins、BitBucket 和代理错误 128 和 502

Jenkins 共享库 - 如何为声明性管道定义通用选项

.net - 使用 MSBuild, '$(SolutionDir)' 错误地解析为 C :\when running 'msbuild/t:restore'

continuous-integration - 向每个团队成员发送成功自动构建的通知

testing - 删除和组合回归测试以加速测试是否是一种不好的做法?

android - 可能有一个 Jenkins 构建失败测试,​​但不会使整个构建失败?

jenkins - jenkins gradle deploy-为什么.gradle foler由root拥有?

continuous-integration - 如何更改 hudson 默认界面语言

R 代码用于测试一个回归中回归变量系数之间的差异