Rails:测试生产环境

6
我们正在进行一个基于Rails 3的项目,并使用Capybara / RSpec进行测试。问题在于,暂存和生产环境有所不同。有时候,测试会顺利运行,在暂存环境中没有问题,但是在生产环境中会出现问题。
例如,当我们添加了一个使用Rack :: File发送文件的中间件时。应用程序发送“X-Sendfile”标头,在Apache下可以工作,但Nginx需要“X-Accel-Redirect”。
我正在寻找在推送到生产环境时运行一系列测试的最佳方法。有人做过这个吗?理想情况下,测试不应在生产服务器本身上运行。
这些测试基本上涵盖了我们产品的核心功能,并且与我们当前运行的测试不同。
非常感谢!

2
我从艰辛的经历中学到的一件事是:编写代码并部署到与生产环境完全相同的环境中。您能将Apache服务器更改为Nginx吗?通常我会配置一个虚拟机,确保它与生产环境有着完全相同的配置(操作系统方面),然后在那里进行部署/测试/运行应用程序。 - Augusto
我同意这将是理想的情况,但我们的系统管理员在可预见的未来没有时间。此外,我不确定我们是否能完全像生产环境一样。 - gmalette
1
你能构建它吗?安装具有相同操作系统版本和补丁级别的VMware Player或BusyBox。所谓“相同”,是指尽可能相似,以便测试此类场景。我(非常)确定,如果你请求系统管理员帮助,同时让他不必经常花费时间,他会同意的。这将使你有自由测试一些“边缘”情况,并使系统管理员从成为帮助台转而做一些真正的工作...我相信你可以说服他/她! - Augusto
谢谢你的回复,Augusto,但这不是我要找的... - gmalette
1个回答

6
我最终做的是在一个production_test环境中增加了一组RSpec测试,该测试只具有数据库的只读访问权限。我使用capybara-webkit驱动程序,并且每个测试都从访问该测试的完整URL开始。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接