我有一个多模块maven项目,并且使用maven-surefire-plugin运行测试。不同模块中的许多测试都使用真实的(本地)数据库来执行测试。我正在使用flyway在测试开始期间运行数据库迁移。一切正常。
问题在于,由于surefire为每个模块派生了新的jvm进程(这对于并行性等是个好主意),因此将为每个模块启动迁移,并建立新的EntityManagerFactory(非常耗时) ,以及所有测试共有的其他任务(至少需要进行数据库集成的测试)。开始不必要的飞行路线迁移,entitymanager的设置等会降低每个模块的引导时间。
在junit / surefire世界中是否有更好的方法来执行此类Commons任务,或者我只是为不同的模块运行单独的jvm而感到困惑吗?