在我的应用程序中,我在 spring 应用程序启动之前初始化了一个属性,如下所示:
MapLookup.setMainArguments(new String[] {"logging.profile", profile}); //from args
SpringApplication.run(source, args);
(仅供引用:用于log4j2
日志记录,必须在spring开始初始化前设置)
现在我想运行一个@IntegrationTest
,但使用相同的日志记录配置。显然我不能使用上面的代码,因为 JUnit
测试不是使用 SpringApplication.run
执行的。
那么,如何在 @RunWith(SpringJUnit4ClassRunner.class)
开始之前初始化代码?
注意:BeforeClass
不起作用,因为它是在 spring 上下文启动后执行的。
最佳答案
您可以在静态初始化程序中运行初始化。静态初始化程序将在 JUnit 加载测试类之后以及 JUnit 读取其上的任何注释之前运行。
或者你可以扩展 SpringJUnit4ClassRunner,首先在其中初始化你自己的 Runner,然后运行 SpringJUnit4ClassRunner
关于java - 如何在 SpringJUnit4ClassRunner 上下文初始化之前运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29274697/