java - 如何在 SpringJUnit4ClassRunner 上下文初始化之前运行代码?

标签 java spring junit spring-test

在我的应用程序中,我在 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/

相关文章:

java - 在 Spring Boot 中以编程方式注册 Spring Converter

java - QueueMessageHandler 的用途是什么

java - 休息 api Spring

unit-testing - 如何使用 JUnit 测试我的 servlet

java - 像 getSystemService() 这样的 "String-Based"API 有什么好处?

java - 检测编译的 jar 和 repo 中的代码之间的差异

java - illegalargumentexception - 项目在 Netbeans 上运行但不作为 War 文件在 Tomcat 上运行

java - IntelliJ IDEA mac os 键盘映射 ^ 不工作

java - assertThat - hamcrest - 检查列表是否排序

java - 有人可以建议一个带有需求规范文档和 junit 测试的开源 java 项目吗?