Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 减少弹簧和弹簧的压力;执行JUnit测试用例时休眠初始化时间_Java_Spring_Hibernate_Automated Tests_Junit5 - Fatal编程技术网

Java 减少弹簧和弹簧的压力;执行JUnit测试用例时休眠初始化时间

Java 减少弹簧和弹簧的压力;执行JUnit测试用例时休眠初始化时间,java,spring,hibernate,automated-tests,junit5,Java,Spring,Hibernate,Automated Tests,Junit5,我们使用Spring/Hibernate应用程序和JUnit来执行测试(使用IntelliJ)。当我必须开发/执行测试时,应用程序启动时间大约为10-30秒,这取决于要初始化的Hibernate实体的数量 我想知道是否有任何解决方案,以尽量减少初始化时间。我的想法是基本上有一个应用程序服务器实例,其中初始化的应用程序正在运行,我能够在此应用程序上执行JUnit测试,而不必在一个测试完成后构建Spring/Hibernate上下文,而是在修改代码后立即重新执行它 所以我的问题是,是否有一个可行的方

我们使用Spring/Hibernate应用程序和JUnit来执行测试(使用IntelliJ)。当我必须开发/执行测试时,应用程序启动时间大约为10-30秒,这取决于要初始化的Hibernate实体的数量

我想知道是否有任何解决方案,以尽量减少初始化时间。我的想法是基本上有一个应用程序服务器实例,其中初始化的应用程序正在运行,我能够在此应用程序上执行JUnit测试,而不必在一个测试完成后构建Spring/Hibernate上下文,而是在修改代码后立即重新执行它

所以我的问题是,是否有一个可行的方法,任何想法/反馈都非常感谢。为了简化,让我们假设只更改测试代码,而不更改任何生产代码,因为这可能需要热交换或任何类似的机制

致以最良好的祝愿,
尼科

我也面临着同样的问题。我将真实数据库切换到内存数据库进行存储库测试,使用@DataJpaTest注释,并对服务层使用Mock。因此,spring并没有装载所有的豆子。对于我的案例来说,这改进了很多。这对于单元测试来说可能是一种可行的方法,但对于集成测试来说却相当困难。在我们的例子中,引导需要很长时间的是Hibernate,在持久层中,很难隔离需要加载的内容和可以删除的内容。另外,这只适用于本地测试,因为像Jenkins这样的CI工具只能引导一次,所以在这种情况下,加载整个应用程序并不是什么大问题。我的目标是不接触遗留代码和生产代码,并探索其他可能性。