代码之家  ›  专栏  ›  技术社区  ›  Bittercoder

建立多样化的数据库测试环境

  •  6
  • Bittercoder  · 技术社区  · 16 年前

    我正在编写一些代码,这些代码需要针对一系列不同的数据库产品工作。

    • MySql
    • Sql Server 2000至2008
    • 甲骨文9i&10g
    • Sybase Adaptive Server Anywhere
    • Sybase Sql Anywhere

    作为持续集成构建的一部分,我们需要针对每个数据库产品运行一组通用集成测试。

    一些想法:

    • 所有产品都有两台虚拟机,甚至一台虚拟机(例如,postgresql和mysql可能有一台ubuntu box,其余产品有一台windows 2008 server机器)——我喜欢一两台虚拟机,因为这是一个更便携的环境,可以运行测试,例如在路上/场外,因为我的笔记本电脑可能会停止运行8或10个小型虚拟机。

    最后,您是如何解决某些商业产品(如Oracle或Progress OpenEdge)高昂的成本问题的,以前的版本是否仍然可用,即是否有免费的“单一开发人员”版本,或购买这些产品的更便宜途径?

    6 回复  |  直到 16 年前
        1
  •  6
  •   Mark Harrison    16 年前
    • 我们的服务器也使用vmware,每个数据库一台vmware主机。您应该可以在一个vmware上放置多个数据库。
    • 对于Oracle,如果您的客户将使用企业版(最有可能),请获取企业版。
    • 请确保并充分利用vmware快照。您可以将数据库完全配置为运行测试,运行测试,然后将数据库恢复到测试前状态,以便再次运行测试。
        2
  •  1
  •   Tim Jarvis    16 年前

    我们在这里所做的(大部分)是为每个所需的配置创建一个VM,我们还针对不同的操作系统,所以我们要测试22个配置。这些虚拟机托管在ESX server中,并编写脚本以在需要时启动和停止,这样它们就不会同时运行。这是一场灾难 要设置的工作列表。

    就数据库服务器的成本而言,我们正在构建的软件类型需要高端版本,因此测试成本已被纳入总体开发成本中(我们只是不得不“承担”)

        3
  •  1
  •   Gary Myers    16 年前

        4
  •  1
  •   Pras    16 年前

    运行集成测试场的一个好处是,如果您在路上使用笔记本电脑,您可以在代码签入后触发集成构建,运行所有测试并让它通知您结果。您还可以归档每个请求和结果,以帮助诊断失败的生成。

        5
  •  1
  •   zendar    16 年前

    Oracle许可证摘录:

    我们授予您非排他性、不可转让的有限许可证,仅用于以下目的: 开发、测试、原型制作和演示 您的申请,而不是出于任何其他目的。

    查看下载部分 www.oracle.com

        6
  •  0
  •   JosephStyons    16 年前

    承载以下内容的Windows Server 2008机箱:

    • Jet 4.0(MS访问)
    • Sybase Adaptive Server Anywhere
    • 进展开放

    在Ubuntu或红帽盒上:

    我看不出有任何必要针对成熟的SQL和Oracle版本进行测试。免费版本被剥离,因此当您在这些服务器的完整版本上运行时,代码被破坏的风险很小。如果您针对完整的服务器进行了测试,并使用了免费的东西,那么是的,有些东西可能会出现问题,但是通过使用最小公分母进行测试,您应该确保良好的质量。