持续集成-是否需要?

nXq*_*Xqd 2 continuous-integration

我有这个问题来验证我对持续集成的知识。据我了解:持续集成将帮助我们尽快检查构建是否有任何错误或错误[红灯]。

我假设我们所有的开发人员都知道TDD,他们会一直进行测试,然后再将某些内容推送到服务器。这意味着在推送之前必须先传递推送的代码,因此我们一直需要ci服务器,因为我们一直都有绿灯亮。

因此,我的问题是,如果我们有一支在开发过程中始终遵循TDD规则的优秀团队,是否需要ci服务器?

dev*_*tal 5

这取决于您的CI服务器在做什么。您可以让每个开发人员在提交到中央源代码存储库之前在本地运行所有单元测试,但是开发人员如何知道要运行哪个单元测试?他们将必须运行所有这些以及所有集成测试,UI测试等。大量测试可能需要很长时间。

通常,将CI服务器配置为隔夜运行更长的集成测试,以查看是否引入了任何重大更改。

此外,您忽略的CI服务器的另一个重要功能是源代码的实际构建。当您提交对源代码存储库的更改时,通常会引入构建错误,因为您已经忘记了提交新文件,或者假设您的源代码正在构建其正在构建的开发环境。

例如,您可能引用了已安装到程序文件目录中的第三方库。这在每台开发人员机器上都可以很好地构建,因为他们已经安装了第三方库,但是在构建服务器上,您会检测到错误的引用,因为构建会失败。

此外,让CI服务器在提交时运行生成和测试,不仅可以更快地突出显示集成问题,而且还可以在提交后立即通知团队中的所有开发人员,因此问题的根源立即显而易见。