首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略logging.level的弹簧引导单元测试

忽略logging.level的弹簧引导单元测试
EN

Stack Overflow用户
提问于 2016-02-05 20:21:28
回答 6查看 46K关注 0票数 115

我的一个maven模块在运行测试时会忽略我的日志记录级别。

src/test/resources,我有application.properties

代码语言:javascript
运行
复制
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.xmllogback-test.xmllogback-spring.xml,但是没有任何帮助。

我的pom:

代码语言:javascript
运行
复制
<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>

一个简单的测试类:

代码语言:javascript
运行
复制
@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会被装载。我已经试图通过错误的配置来破坏应用程序。

谢谢你的暗示。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-02-07 14:20:48

好的,在我现在所做的所有模块中,配置如下:

src/main/resources:

我在application.properies中使用日志配置,如问题中所述的logging.level.*

src/test/resources:

我使用logback-test.xml的方式如下:

代码语言:javascript
运行
复制
<?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,但是在另一个模块中它忽略了.但就目前而言,它对我来说是有效的。

但是,也许很少有有背景知识的暗示是值得欢迎的。

我不把我的答案标记为解决方案,因为这仍然是一种解决办法。

票数 124
EN

Stack Overflow用户

发布于 2016-10-13 15:39:11

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <logger name="org.springframework" level="INFO"/>
</configuration>

作为一个快速修复,我将logback.xml文件与上面的内容放在src/test/resources中,它可以工作。

票数 40
EN

Stack Overflow用户

发布于 2016-09-01 07:54:03

要启用application.properties,需要向测试类添加注释@SpringBootTest,请读取更多的这里

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35232827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档