繁体   English   中英

如何覆盖JUnit Test Suite默认输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM