我的maven模块之一在运行测试时会忽略我的日志记录级别。
在src / test / resources中,我具有application.properties:
app.name=bbsng-import-backend app.description=Import Backend Module for Application spring.profiles.active=test # LOGGING logging.level.root=error logging.level.org.springframework.core =fatal logging.level.org.springframework.beans=fatal logging.level.org.springframework.context=fatal logging.level.org.springframework.transaction=error logging.level.org.springframework.test=error logging.level.org.springframework.web=error logging.level.org.hibernate=ERROR
我也尝试了application-test.properties。
我的应用程序记录很多,尤其是在加载上下文时。我尝试了logback.xml,logback-test.xml和logback- spring.xml,但没有任何帮助。
我的pom:
<parent> <groupId>at.company.bbsng</groupId> <artifactId>bbsng-import</artifactId> <version>0.1.0-SNAPSHOT</version> </parent> <artifactId>bbsng-import-backend</artifactId> <name>bbsng-import-backend</name> <properties> <start-class>at.company.bbsng.dataimport.ApplicationImportBackend</start-class> </properties> <dependencies> <!-- APPLICATION ... --> <dependency> <groupId>at.company.bbsng</groupId> <artifactId>bbsng-app-domain</artifactId> <scope>test</scope> </dependency> <!-- SPRING ... --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <scope>test</scope> </dependency> <!-- JAVAX ... --> ... <!-- COMMONS ... --> ... <!-- LOMBOK ... --> ... <!-- DB --> ... </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${org.springframework.boot-version}</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
一个简单的测试类:
@ContextConfiguration(classes = { ApplicationImportBackend.class }) @RunWith(SpringJUnit4ClassRunner.class) @ActiveProfiles({ "test" }) public class BatchJobConfigurationTests { @Autowired private JobLauncher jobLauncher; @Test public void testSimpleProperties() throws Exception { assertNotNull(jobLauncher); } }
应用程序日志处于调试模式。
是的,将加载application.properties。我已经尝试通过错误的配置破坏应用程序。
谢谢您的提示。
好的,现在我在配置的所有模块中执行以下操作:
src / main / resources: 我在有问题的application.properies(例如logging.level。*)中使用日志记录配置。
src / test / resources: 我使用logback-test.xml像这样:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml" /> <logger name="*.myapp" level="error" /> <logger name="org.springframework.core " level="error" /> <logger name="org.springframework.beans" level="error" /> <logger name="org.springframework.context" level="error" /> <logger name="org.springframework.transaction" level="error" /> <logger name="org.springframework.web" level="error" /> <logger name="org.springframework.test" level="error" /> <logger name="org.hibernate" level="error" /> </configuration>
但是我仍然不明白,为什么在几个模块中我可以使用application.properties,但是在另一个模块中它却忽略了……但是现在它对我来说仍然有效。
但是,也许仍然很少有人会提供有关背景知识的提示。
我没有将我的答案标记为解决方案,因为它仍然感觉像是一种解决方法。