我正在编写一些需要针对一系列不同数据库产品工作的代码。
- 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)的高昂成本的,并且之前的版本是否仍然可用,即是否有免费的“单一开发者”版本可用,或者购买这些产品的更便宜的途径?