部署到测试环境是持续集成的一部分吗?

Is deployment to a test environment a part of Continuous Integration?

我检查了很多来源,但我仍然不清楚:部署到测试环境是 CI 的一部分,还是 CI 只是经常提交并保持主线无错误和集成?有人这样说,有人说部署到目标环境是 CI.

的一部分

否则我似乎看不出 CI 和持续交付之间的区别。

持续集成可能需要也可能不需要您认为部署到测试环境的东西。 CI 的要点是自动化测试是 运行 软件版本,以确保该版本已准备好部署到下一步(QA、暂存、生产或任何下一步)一个过程中的步骤是)。因此,如果需要测试软件,则部署软件,如果不需要,则不部署。

总是有某种测试环境,因为自动化测试必须 运行 在某些计算机上,但代码可能会或可能不会通过您考虑的部署到达那里。例如,如果应用程序使用解释性语言,运行宁自动化测试可能只需要将源代码复制到测试环境和 运行宁脚本,而不是实际部署。

是否需要部署自动化测试取决于应用有什么样的自动化测试。如果它只有单元测试,则不需要部署。如果它具有全栈集成测试,则可能需要也可能不需要部署,具体取决于集成测试框架。例如,作为 Rails 运行 的一部分的集成测试框架是 Rails 服务器的特定测试版本,用于与测试对话,因此这些测试不需要部署。另一方面,其他框架可能不提供这种支持,因此必须将应用程序部署到测试环境,以提供全栈集成测试 运行 反对的东西。或者 CI 构建可能包括自动性能测试;这些肯定需要 运行 针对部署到测试环境的应用程序。