如何打印到 Jenkins 的控制台报告来自失败断言的消息?

How to print to Jenkins' console report the messages from failed asserts?

我的 FullStack 在 Jenkins 上测试 运行,成功时不输出任何内容,否则输出测试名称和失败行。这并没有说明哪里出了问题。

有没有办法在 Jenkins 控制台上打印断言错误消息?

我有一个 TestWatcher 已经截图了。它也应该做一个System.out.println(e.getMessage())吗?

我想让它打印这样的东西:

java.lang.AssertionError: Page is listing a different job
Expected: <true>
     but: was <false>

您可以使用 Jenkins 的 Build Failure Analyzer Plugin 创建一些正则表达式并将它们打印在构建页面上。

这将是一个 link 跳转到日志中的正确行。

由于 Jenkins 正在调用 gradle 构建,gradleabsorbing all intermediary outputs,因此只有结果被输出到 Jenkins 控制台。

这就是我为解决问题所做的,在我的 gradle.build 文件中:

nameOfTaskThatRunsTests {
    testLogging {
        events "standardOut"
    }
}

在我的 java 测试文件上:

@Rule
public TestRule testWatcher = new TestWatcher() {
    @Override
    public void failed(Throwable t, Description test) {
        if (t instanceof AssertionError) {
            System.out.println("Failed assertion: " + t.getMessage());
        }
    }
};