opensolon/solon

Idea中测试时,日志输出混合问题

Closed this issue · 9 comments

理想情况应该是:idea中可以将@test测试输出和总体日志输出分开,如果是下图中的测试,点击最上面的HelloTest应该显示所有日志,点击hello应该只显示该方法的输出
image

实际情况:最上面HelloTest显示所有输出,点击hello会显示solon初始化的日志以及自己的输出,如下所示:
image

image

测试代码如下:

@RunWith(SolonJUnit4ClassRunner.class)
@SolonTest(App.class)
public class HelloTest extends HttpTester {
    @Test
    public void hello() throws IOException {
        System.out.println("hello");
//        assert path("/hello?name=world").get().contains("world");
//        assert path("/hello?name=solon").get().contains("solon");
    }

    @Test
    public void nextHello() {
        System.out.println("next Hello");
    }
}

在Idea中Spring的日志是可以按照如上所述分别显示的。简单看了一下,solon中日志输出是直接System.out.println输出的,Spring中日志输出似乎是通过PrintStream输出的,不清楚Idea是如何将日志分开的。

使用的日志插件不同,会用不同的方案:)

你现在可能用的是:solon.logging.simple 。换成 solon.logging.logback 试试看

我觉得可能和日志插件无关,因为是最开始的日志是 Solon 类使用内部的日志工具 LogUtil 输出的。
当然我也尝试了更换为 solon.logging.logback,但是结果依然是这样

你研究试试?

我试试

感觉很难解决,输出按照不同标签进行划分和 Idea 捆绑的 Junit 插件有关
而且测试其他工程时发现使用 Junit5 之后这个问题就解决了(上面的是 Junit4)

所以我打算关闭这个问题了 :<

好关闭:)