【问题标题】:Best practice with Coldfusion deploymentColdfusion 部署的最佳实践
【发布时间】:2011-06-05 19:57:37
【问题描述】:

我是 Coldfusion 开发的新手,并且继承了一个已经部署的项目。 由于各种技术限制,无法在我们的工作站上进行本地开发(就像您为 .net 所做的那样)。因此,文件直接从测试服务器编辑(并从那里提交到 SVN)。

再一次,由于测试数据库通常落后于产品数据库,我们经常不得不直接从产品服务器编辑代码(请不要在这里责备,我知道这是一件坏事)。

我想借此机会将流程恢复到可管理的状态:

  • 本地代码版
  • 使用 MXUnit 进行单元测试
  • 使用 SVN 提交
  • 在 SVN 上有一个挂钩,可以部署到测试服务器
  • 在测试服务器上测试
  • 以某种方式触发到产品服务器的部署

在技术方面,我正在考虑组合:CFEclipse、MXUnit、SVN 和 ANT

除了SVN,一切都是新的,可以改变你有更好的建议。

有没有人实施过这样的流程,可以给我一个关于如何开始的提示吗?

【问题讨论】:

  • 您能否解释一下不本地开发的技术限制是什么?人们通常告诉我他们不能在本地开发,因为生产要么是 Windows,要么是他们“无法”复制的其他东西。如果是这种情况,请记住,开发平台不必复制生产……这就是 staging 的用途。
  • 限制主要围绕许可证。除了服务器,我们没有 CMS 的许可证。因此,我们必须将更改推送到服务器才能看到它们。我们可以在本地开发组件,但是一旦它需要一些显示,我们就必须将代码移动到服务器。最后,我们使用 CMS 公开的对象。因此,我们必须从服务器运行。
  • @orangepips:请将您的联系方式发给我。我宁愿给你离线 CMS 的名称(只是想确保我在这里没有冒犯任何人)
  • 点击进入我的个人资料stackoverflow.com/users/470838/orangepips 以查看我的电子邮件地址。
  • 我必须成为盲人... :-) 我找不到您的电子邮件地址,但只能找到您的linkedIn 页面。

标签: svn ant coldfusion cfeclipse mxunit


【解决方案1】:

在我们的办公室,我们首先尝试了 ANT + MXUnit + Selenium + TeamCity,但一段时间后我们决定切换到 Jenkins/Hudson 持续集成服务器。

关于持续集成的方法和教程有很多,所以我想你不需要我在这里详细解释。

总而言之,为 svncheckin/checkout 构建您的 ANT 脚本,构建 MXUnit 测试,生成/编写 Selenium 测试并在测试服务器上从 Jenkins 用户界面运行所有内容。

快速提示: 在本地开发 ANT 脚本,以避免删除服务器上的文件(我们曾经发生过 :))。 从浏览器运行 MXUnit 时很棘手,请注意应用程序范围的变量。 您可以用多种语言编写/编辑 Selenium 测试,Java 似乎是我们的最佳选择。 TeamCity 和 Jenkins 各有利弊,最好两者都试一下,看看哪个更适合你。

相关链接:

http://www.jetbrains.com/teamcity/

http://jenkins-ci.org/

http://seleniumhq.org/

您还可以查看 BDD(行为驱动开发)并将 JBehave http://jbehave.org/ 包含到您的敏捷开发工作流程中,如果您有“复杂”的客户端,这真是太棒了。

祝你好运!

【讨论】:

  • 我们有 Jenkins 与 ANT 和 MXUnit,使用 CFEclipse 开发并将代码存储在 git 中
  • 将 MXUnit 与 ANT 和 Jenkins 连接的文档在这里:wiki.mxunit.org/display/default/… 该文档中引用的 samples/build.xml 文件包括 svn ant 任务的示例用法,因此您可以从内部使用 svnupdate ANT 在运行测试之前更新您的开发位置,这是将最新代码导入开发的一种途径。如果您有兴趣,我还有其他示例 ANT 代码可以使用 ssh/scp 将代码推送到生产环境
【解决方案2】:

查看 git 而不是 svn。好多了。和 Mylyn/Tasktop 将你的 ide 中的所有东西联系在一起。

【讨论】:

  • 迈克,你没有提供太多关于为什么 git 更好的信息。老实说,出于各种原因,我喜欢在 SVN 上使用 Git,但这只是我自己。如果 Jaepetto 打算使用 Ant,那么使用 SVN 可能就不那么令人头疼了,尤其是如果他已经知道它的话。 Ant 没有对 Git 的任何原生支持,尽管我确实有一个 snippet 用于将 Git 添加到 Ant。
  • 我喜欢使用 git 而不是 SVN。但这意味着存储库的完全迁移。暂时,我会尽量不要一下子改变一切。
  • 据我所知,迁移非常轻松。
  • @Henry:不幸的是,这超出了我的影响范围。
  • David,Ant 也不支持“本机”SVN,但有一个任务。这是通过 JGit aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit 提供的 Git Ant 任务,但我的观点是 Mylyn/Tasktop 将所有内容捆绑在一起,对于 SVN 仍然适用。 Tasktop/Mylyn 现在有一个构建视图以及其他增强功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 2010-11-25
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 2021-03-15
相关资源
最近更新 更多