如何配置监听器以覆盖 Citrus 中 class LoggingReporter 的行为?
How to configure a Listener to override the behaviour of the class LoggingReporter in Citrus?
我正在寻找一种方法来在使用框架 Citrus.
时删除失败断言的堆栈跟踪
这是在 testNg 中完成的,如下所示:
public class NoStackTraceListener implements ITestListener {
...
@Override
public void onTestFailure(ITestResult iTestResult) {
Throwable th = iTestResult.getThrowable();
if (Objects.nonNull(th)) {
System.out.println(th.getMessage());
iTestResult.setThrowable(null);
}
}
...
}
@Listeners({ NoStackTraceListener.class })
class A {...}
但是我找不到任何使用 class 'TestListener' 或其他的例子来覆盖提供的 'LoggingReporter'
的实现
请问有人已经使用 framework citrus 覆盖了 Listener 并且可以提供代码片段吗?
谢谢
您需要将自定义报告程序作为 bean 添加到 Spring 应用程序上下文:
@Bean
public NoStackTraceReporter noStackTraceReporter() {
return new NoStackTraceReporter();
}
您还可以通过选择 bean 名称来覆盖默认的日志报告程序 loggingReporter
@Bean
public NoStackTraceReporter loggingReporter() {
return new NoStackTraceReporter();
}
NoStackTraceReporter
实现随后能够覆盖失败测试的特定事件处理程序:
public class NoStackTraceReporter extends LoggingReporter {
...
@Override
public void onTestFailure(TestCase test, Throwable cause) {
// do something customized
}
...
}
您也可以覆盖报告器界面中的 generateTestResults()
方法以自定义记录结果。
您还可以按照演示如何在 Citrus 中添加自定义报告程序的示例 http://www.citrusframework.org/samples/reporting/ 进行操作。
我正在寻找一种方法来在使用框架 Citrus.
时删除失败断言的堆栈跟踪这是在 testNg 中完成的,如下所示:
public class NoStackTraceListener implements ITestListener {
...
@Override
public void onTestFailure(ITestResult iTestResult) {
Throwable th = iTestResult.getThrowable();
if (Objects.nonNull(th)) {
System.out.println(th.getMessage());
iTestResult.setThrowable(null);
}
}
...
}
@Listeners({ NoStackTraceListener.class })
class A {...}
但是我找不到任何使用 class 'TestListener' 或其他的例子来覆盖提供的 'LoggingReporter'
的实现请问有人已经使用 framework citrus 覆盖了 Listener 并且可以提供代码片段吗?
谢谢
您需要将自定义报告程序作为 bean 添加到 Spring 应用程序上下文:
@Bean
public NoStackTraceReporter noStackTraceReporter() {
return new NoStackTraceReporter();
}
您还可以通过选择 bean 名称来覆盖默认的日志报告程序 loggingReporter
@Bean
public NoStackTraceReporter loggingReporter() {
return new NoStackTraceReporter();
}
NoStackTraceReporter
实现随后能够覆盖失败测试的特定事件处理程序:
public class NoStackTraceReporter extends LoggingReporter {
...
@Override
public void onTestFailure(TestCase test, Throwable cause) {
// do something customized
}
...
}
您也可以覆盖报告器界面中的 generateTestResults()
方法以自定义记录结果。
您还可以按照演示如何在 Citrus 中添加自定义报告程序的示例 http://www.citrusframework.org/samples/reporting/ 进行操作。