Spring功能OutputCapture在有效的spring启动版本中不起作用

时间:2018-03-06 13:25:46

标签: java spring junit

我无法在JUnit testing内使用OutputCapture功能。我想使用此功能查看一些日志消息。 如果我试图在IDEA中包含类包org.springframework.book.test.rule.OutputCapture,它会向我显示警告消息“无建议”。这样我就无法访问outputCapture类(甚至测试包也不可见)。

正如我在website上发现的那样,从1.3版本开始支持此类。 但是我使用正确的春季启动版1.5。

import org.junit.Rule;
import org.junit.Test;
import org.springframework.boot.test.rule.OutputCapture; THIS IS NOT RECOGNIZED

import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;

public class MyTest {

    @Rule
    public OutputCapture capture = new OutputCapture();

    @Test
    public void testName() throws Exception {
        System.out.println("Hello World!");
        assertThat(capture.toString(), containsString("World"));
    }

}

有什么问题?

1 个答案:

答案 0 :(得分:0)

一个广泛的猜测,因为我不知道您的依赖项:如果您使用的是maven,请尝试添加以下依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>2.1.6.RELEASE</version> <!-- or another version -->
    <scope>test</scope>
</dependency>

原因是OutputCapture来自项目spring-boot-test

Github:OutputCapture