[英]How to override JUnit Test Suite default output
我正在Java主要方法中以TestRunner.run(suite)的身份运行Junit Test Runner,并在本地成功运行该方法。 我被困的是,我从comamnd行运行的每个测试套件都会产生一个
OK(1次测试)... OK(2次测试)...
我不要这种行为。 有什么办法可以摆脱这种情况吗? 我搜寻了很多东西,似乎没有人解决这个问题。
方法规则和类规则注释似乎在套件级别(拦截器)处进行处理,但是我无法覆盖junit提供的套件输出
任何对此的指针都非常感谢
TestRunner
类具有setPrinter(ResultPrinter)
方法,该方法使您可以覆盖输出结果。 您也可以将一个传递给构造函数。 默认情况下,打印机为:
new ResultPrinter(System.out);
例如,如果您将ResultPrinter
子类化, ResultPrinter
可以关闭成功的输出。 这样的事情应该起作用:
public class MyResultPrinter extends ResultPrinter {
public MyResultPrinter(PrintStream writer) {
super(writer);
}
@Override
protected void printFooter(TestResult result) {
if (result.wasSuccessful()) {
// just drop the OK messages
} else {
// but print the failures
super.printFooter(result);
}
}
}
然后,您可以像这样使用它:
new TestRunner(new MyResultPrinter(System.out)).run(suite);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.