如何打印到 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
构建,gradle
是 absorbing 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());
}
}
};
我的 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
构建,gradle
是 absorbing 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());
}
}
};