2

我在 java main 方法中将 Junit Test Runner 作为 TestRunner.run(suite) 运行,并在本地运行成功运行的。我被卡住的是,我从命令行运行的每个测试套件都会产生一个

好的(1 次测试)... 好的(2 次测试)...

我不想要这种行为。有什么办法可以摆脱这个吗?我搜索了很多,似乎没有人解决这个问题。

方法规则和类规则注释似乎在套件级别(拦截器)处理事情,但我无法覆盖 junit 提供的套件输出

对此的任何指示都非常感谢

4

1 回答 1

1

该类TestRunner有一个setPrinter(ResultPrinter)方法,允许您覆盖输出发生的情况。您也可以将一个传递给构造函数。默认情况下,打印机是:

new ResultPrinter(System.out);

如果你,例如子类,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);
于 2012-03-29T22:14:43.950 回答