我正在编写一些需要针对不同数据库产品阵列工作的代码。
作为持续集成构建的一部分,我们需要针对每个数据库产品运行一组通用集成测试。
我确信其他人不得不设置类似的测试环境,我想深入了解一些智慧 - 你最终会使用哪些策略,哪些方法运行良好或哪些方法效果不佳?
一些想法:
最后你是如何解决其中一些商业产品(即Oracle或Progress OpenEdge)的高成本,以及之前的版本仍然可用,即是否有免费的“单一开发者”版本,或购买这些产品的更便宜的途径?
答案 0 :(得分:6)
答案 1 :(得分:1)
我们在这里做的(大多数情况下)是针对所需的每个配置的VM,我们还针对不同的操作系统,因此我们正在测试22种配置。这些VM托管在ESX服务器中,并在需要时编写脚本以启动和停止,以便它们不会一次全部运行。设置工作是很多。
就数据库服务器的成本而言,我们正在构建的软件类型需要高端版本,因此测试成本已经考虑到整体开发成本(我们只需要“吸收它”)
答案 2 :(得分:1)
Oracle确实有免费的“Express Edition”。它没有Oracle的所有功能,但如果你也在使用Jet运行,那么这应该不是问题。
答案 3 :(得分:1)
在架构上,最好创建一个功能强大的服务器集成测试服务器场来运行各种配置的虚拟机。可以使用队列进程监听集成测试请求(可以使用svn提交或其他源代码控制检查触发器来触发)。
对于最准确的测试范围,您可能希望为每个配置分别配置一个VM。这将降低配置冲突的风险,并增加运行自定义VM集的灵活性(例如Oracle + MySQL + PostgreSQL而不是其他VM等)。根据您的构建过程,它还可能允许您运行10分钟的构建。
运行集成测试服务器场的好处是,如果您正在使用笔记本电脑上路,您可以在代码签入后触发集成构建,运行所有测试并让它通知您结果。您还可以归档每个请求和结果,以帮助诊断失败的构建。
答案 4 :(得分:1)
Oracle许可证摘录:
我们授予您非专有,不可转让的有限许可,仅可将程序用于开发,测试,原型设计和演示您的应用程序,而不是用于任何其他目的。
因此,您可以下载完整的Oracle版本9,10和11,并按照许可证中的说明免费使用它们。 检查www.oracle.com
上的下载部分答案 5 :(得分:0)
听起来你已经知道该怎么做了。我建议使用以下VM布局:
托管以下内容的Windows Server 2008框:
在Ubuntu或Red Hat盒子上:
我认为没有必要对完整的SQL和Oracle版本进行测试。免费版本被剥离,因此当您针对这些服务器的完整版本运行代码时,代码中断的风险很小。如果您已经针对整个服务器进行了测试并转向了免费的东西,那么有些事情可能会破坏,但是通过使用最小公分母进行测试,您应该确保良好的质量。