我正在使用Springboot进行应用程序开发.如何配置Postgresql用于测试目的?内存数据库中是否有与Postgresql语法高度兼容的数据库?
如果没有,我应该如何进行集成测试.
解决方法 我对真实postgres的一些db测试每次需要10ms.我在每个测试中做了多次提交.所以:要覆盖postgres-native功能,您需要相同的db(如您所见,h2和其他内存中的db不是很兼容). postgres没有内存模式.
对于功能测试,真实数据库本身并不比任何内存数据库慢得多.差异通常在于启动时间(对于postgres 9.6它是~4s).但是,如果您的测试生命周期是智能的,并且您可以将db启动次数降低到1或0(通过让开发db始终准备好),那么问题就会停止显着.
所以获得真正的postgres并正确设置其生命周期.有一些工具可以帮助您解决一些问题:
> testcontainers将帮助您提供
真正的数据库
> dbunit – 将帮助您清理测试之间的数据
缺点:
>创建和维护架构和数据需要做很多工作.特别是当您的项目处于密集开发阶段时.
>它是另一个抽象层,所以如果突然想要使用这个工具不支持的某个数据库功能,可能很难测试它
> testegration – 旨在为您提供完整,随时可用和可扩展的生命周期(披露:我是创建者).
缺点:
>仅限小型项目
>非常年轻的项目
另一个步骤是在 *** 作系统级别将db移动到内存.再次,第一次启动时间将类似,因为所有需要加载.一些起点here和here
缺点:
>团队中的每个开发人员都必须修改他的本地环境> *** 作系统之间不可移植(如果您的团队有异构环境)
总结以上是内存溢出为你收集整理的如何准备在内存替换中使用PostgreSQL的集成测试?全部内容,希望文章能够帮你解决如何准备在内存替换中使用PostgreSQL的集成测试?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)