我在一个使用aws的项目上工作,我们把数据放在mysql数据库中。这个项目很长,主要是处理数据库。我们的数据库结构可能每一天都会发生变化,但数据库中的数据经常发生变化(比如每15天一次)。如果数据发生变化,这将导致在实际数据库上执行系统集成测试时失败。因此,我们提出了两个想法,一个是创建一个模拟数据并将其放入我们的数据库中并用它进行测试(大多数情况下它都可以工作),但这是一项繁琐的任务,因为数据库相当复杂。另一种方法是创建一个新的数据库并从中复制当前数据(它可以工作,因为现在所有的测试用例都通过了)。这将节省我们创建模拟数据的时间。我们将在此环境中在dev和acceptance中运行测试用例,并在生产环境中执行cf绑定,因此这就像编写一行额外的绑定和解除绑定一样。我们使用蓝绿色部署,所以停机不是问题。有人能建议哪种方法更好吗?
一个单独的数据库用于测试(我从未见过这个)或创建模拟数据?
1条答案
按热度按时间3xiyfsfu1#
假设您的数据库模式不太复杂,我建议您使用内存中的数据库,如h2或hsql数据库。您可以作为设置的一部分加载所有必要的数据集,然后针对所有条件运行测试。
在测试结束时,h2示例将被清除。你的实际分贝不受影响。
一个警告是,在内存db中,您需要合理化在设置期间放入的测试数据量。因此,您可以有多个测试套件,每个套件都有自己的测试数据集(总体测试数据的子集)。
您可以使用活动配置文件控制此类行为。