首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP隔离测试环境

PHP隔离测试环境
EN

Stack Overflow用户
提问于 2011-04-25 21:02:39
回答 4查看 197关注 0票数 2

我正在将Git集成到公司工作流中,老板希望在部署到生产之前能够测试php代码。目标是有三个环境:开发、测试和生产。

因此,工作流将类似于:

  • 克隆到本地dev的回购程序中。
  • 将更改推送到回购
  • 将repo的更改拉到测试env
  • 测试env中的测试更改,以显示在将更改拖到活动env后站点的外观和行为。
  • 经批准后,将更改从回购到生产环境。

现在,这里有几个渔获物:

  1. 该公司希望使用来自live的实际数据来更好地判断程序在测试env中是否正确运行。我很乐意保持数据的同步,并且本质上使实时数据库每晚同步到测试数据库。
  2. 该程序定期向客户发送电子邮件,因此我需要一种方法来拦截对mail()的任何调用,并将其重定向到日志文件或其他电子邮件地址。
  3. 这个程序也可以处理账单,不过我很有信心,我可以将支付处理器集成从live转换到沙箱env (即paypal、auth.net等)。

我很感激你对如何做上述工作的任何想法和想法。

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2011-04-25 21:12:28

在我们的暂存服务器上,我已经将本地smtp配置为删除除某些位于白名单上的地址以外的所有邮件。这样,客户就不会收到来自暂存环境的任何邮件。

对于其他外部服务,如果它们支持或以其他方式使用存根,我将以测试模式运行它们。后者意味着我们不能测试最后一个集成点,但这是可以接受的。

票数 3
EN

Stack Overflow用户

发布于 2011-04-25 21:21:16

我以前见过类似的应用程序编写方法,并看到了以下实现:

  • 一个标准的“邮件”类,用于构建/发送所有出站电子邮件。这样,您就可以轻松地修改开发/暂存环境中的行为。一种很好的方法是将来自该系统的所有电子邮件发送到共享邮箱或登录用户的电子邮件地址(执行测试),并在邮件中包含一个标头,说明它来自测试平台,如果正在生产,它会被发送给谁。
  • 在其他设置中,我看到MTA配置为黑洞邮件。
  • 清晰地定义了让应用程序检测它在哪个环境中运行的方法,这样它就可以知道如何运行了。Apache中设置的环境变量(我猜您正在使用Apache)检测平台,然后检测配置功能,该功能允许您继承一组公共选项,并在必要时使用特定选项进行重载。Zend的Zend_Config很好地处理了这个问题。
  • 为了方便地测试您的代码或替换组件,良好的OO设计和依赖注入将真正帮助您更好地测试事物。
  • 考虑使用某种连续集成工具,如Hudson或PHP在控制下
  • 考虑查看Capistrano或Phing,以便轻松地部署到不同的平台上。
票数 2
EN

Stack Overflow用户

发布于 2011-04-25 21:22:33

  1. 数据需要有多精确?它需要是生产数据,还是就像它一样?当您进行架构更改或其他操作时,您可能可以手动运行导入。
  2. 这里的另一种选择是在DB表上运行一个更新,其中包含您的联系人,其中添加了".invalid“或其他一些不需要任何其他配置的实时电子邮件地址。
  3. 支付授权的沙箱环境必然是您正在使用的网关的一个功能。

我喜欢James C提到依赖注入。注入的依赖将模糊您的生产和测试环境之间的界线,而不需要广泛的配置。这肯定会让你的生活更轻松。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5783230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档