ruby-on-rails - 测试和部署工作流程 (Rails)
问题描述
不确定这是否在正确的部分 - 如果不是,请告诉我。
我对在生产环境(实时 Web 应用程序)中进行测试和部署完全陌生,并且最近加入了一个具有以下设置的团队。
他们目前有测试服务器 X,可以在 x.website.com 上实时查看,生产服务器 Y 可以在 website.com 上查看。
作为开发人员,我们的主要任务是解决 GitHub 问题,这些问题从前端内容(例如编辑不正确的链接)之类的小更改到较大的后端修改不等。
目前他们的测试系统是将Issue_X推送到服务器X上的远程git分支进行实时测试,并让其中一名团队测试人员查看。如果一个人一直在处理一系列小问题,他们通常会将它们合并为一个批次并将它们推到一起进行测试 - 但开发人员通常会自行决定是否认为这些问题足够小可以合并在一起. 其他时候,当开发人员处理更大的问题时,测试服务器可能会在一段时间内超出限制,而测试正在进行中。无论哪种方式 - 测试服务器一次只能由一个开发人员使用。由于我们的许多团队(以及所有测试人员)都是志愿者,因此并不总是可用,这一事实进一步延长了这一时间。
我的问题是 - 这与行业标准相比如何?这似乎是一种非常低效且不一致的方式。有哪些替代方案?
解决方案
以这种方式进行测试似乎非常低效。通常,当人们说“测试”时,通常是通过 gem(Capybara 或 RSpec)完成的单元测试。这种拥有测试服务器的做法通常称为临时服务器,这是在实时部署之前捕获任何错误的最后一步。
您的登台服务器上只允许进行一项测试,这非常令人担忧,这有什么原因吗?
替代方法是使用我上面提到的测试 gem 来测试 API 的数据和端点。前端编写测试有点棘手,但有一些框架可以用来做测试,比如 Mocha 和 Karma。
推荐阅读
- python - JSON,Unicode 或二进制响应
- r - 使用 R 对同一列进行交叉制表的最佳方法
- node.js - 如何修复本地隧道的“隧道服务器脱机:请求失败,状态码为 502”错误
- vba - Windows().Activate 似乎不起作用。如何解决“请求的成员不存在”?
- unity3d - 如何在构建管道期间删除场景中的某些对象?
- iframe - 允许在网站中嵌入视频,同时保持 youtube 在网络中被阻止
- php - 如何将自定义用户搜索请求解析为全文搜索?
- cmd - 使用 'SET' 获取表达式的结果
- scala - 泛型类型的 Scala 组合
- jquery - jQuery数据表中带有超链接的图像未显示