6

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

  • mysql
  • Sql Server 2000 到 2008
  • PostgreSQL
  • 甲骨文 9i & 10g
  • Jet 4.0(MS 访问)
  • MSDE
  • Sybase Adaptive Server 无处不在
  • Sybase Sql Anywhere
  • 进展 OpenEdge

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

我确信其他人不得不建立类似的测试环境,我想利用其中的一些智慧——你最终使用什么策略,什么效果好或效果不好?

一些想法:

  • 每个产品都有单独的虚拟机,每个都分配少量内存(在某些情况下更易于管理,或者我们对各个产品的设置略有不同)。
  • 所有产品的几个虚拟机甚至一个虚拟机(例如,可能是一个用于 postgresql 和 mysql 的 ubuntu 机器,以及一个用于其余产品的 windows 2008 服务器机器) - 我喜欢一两个虚拟机,因为它更便携运行测试的环境,即在路上/场外时,因为我的笔记本电脑可能会在运行 8 或 10 个小型 VM 时停止运行。

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

4

6 回答 6

6
  • 我们的服务器也使用 vmware,每个数据库一个 vmware 主机。您应该可以将多个数据库放在一个 vmware 上。
  • 您不应该对昂贵的软件许可证有太大的问题。例如,Oracle 允许您拥有其所有产品的开发许可证。只要您不在笔记本电脑 vmware 上运行生产数据库,就应该没问题。当然,伊纳尔。
  • 对于 Oracle,如果您的客户将使用企业版(很可能),请获取企业版。
  • 一定要充分利用 vmware 快照。您可以完美地配置数据库以运行您的测试,运行您的测试,然后将数据库恢复到测试前状态,以便再次运行您的测试。
于 2009-04-22T06:34:36.493 回答
1

我们在这里所做的(主要)是为所需的每个配置提供一个 VM,我们还针对不同的操作系统,因此我们正在测试 22 种配置。这些虚拟机托管在 ESX 服务器中,并编写了脚本以在需要时启动和停止,这样它们就不会同时运行。设置工作量很大

就数据库服务器的成本而言,我们正在构建的软件类型需要高端版本,因此测试成本已计入总体开发成本(我们只需要“接受”)

于 2009-04-16T23:39:04.397 回答
1

Oracle 确实有一个免费的“快捷版”。它不具备 Oracle 的所有功能,但是如果您还针对 Jet 运行,那么这应该不是问题。

于 2009-04-17T03:13:11.307 回答
1

在架构上,最好创建一个足够强大的服务器集成测试场,以运行各种配置的虚拟机。它可以在一个队列进程的前面,监听集成测试请求(可以使用 svn 提交或其他源代码控制检查触发器来触发)。

对于最准确的测试范围,您可能希望为每个配置使用单独的 VM。这将降低配置冲突的风险,并增加运行自定义 VM 集的灵活性(例如 Oracle + MySQL + PostgreSQL 而不是其他的,等等)。根据您的构建过程,它还可能允许您运行 10 分钟的构建。

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

于 2009-04-22T06:44:56.233 回答
1

Oracle 许可证摘录:

我们授予您非排他性、不可转让的有限许可,仅可将程序用于开发、测试、原型设计和演示您的应用程序,不得用于任何其他目的。

因此,您可以下载完整的 Oracle 版本 9、10 和 11,并按照许可证中的说明免费使用它们。检查www.oracle.com上的下载部分

于 2009-04-22T17:27:18.187 回答
0

听起来您已经很清楚该做什么了。我建议以下虚拟机布局:

托管以下内容的 Windows Server 2008 机器:

  • MSDE
  • Jet 4.0(MS 访问)
  • Sybase Adaptive Server 无处不在
  • Sybase Sql Anywhere
  • 进展 OpenEdge

在 Ubuntu 或 Red Hat 机器上:

我认为不需要针对完整的 SQL 和 Oracle 版本进行测试。免费版本已被剥离,因此当您针对这些服务器的完整版本运行代码时,代码被破坏的风险很小。如果您已经针对整个服务器进行了测试并使用了免费的东西,那么是的,有些东西可能会损坏,但是通过使用最小公分母进行测试,您应该确保良好的质量。

于 2009-04-28T20:48:17.687 回答