我在 java main 方法中将 Junit Test Runner 作为 TestRunner.run(suite) 运行,并在本地运行成功运行的。我被卡住的是,我从命令行运行的每个测试套件都会产生一个
好的(1 次测试)... 好的(2 次测试)...
我不想要这种行为。有什么办法可以摆脱这个吗?我搜索了很多,似乎没有人解决这个问题。
方法规则和类规则注释似乎在套件级别(拦截器)处理事情,但我无法覆盖 junit 提供的套件输出
对此的任何指示都非常感谢
我在 java main 方法中将 Junit Test Runner 作为 TestRunner.run(suite) 运行,并在本地运行成功运行的。我被卡住的是,我从命令行运行的每个测试套件都会产生一个
好的(1 次测试)... 好的(2 次测试)...
我不想要这种行为。有什么办法可以摆脱这个吗?我搜索了很多,似乎没有人解决这个问题。
方法规则和类规则注释似乎在套件级别(拦截器)处理事情,但我无法覆盖 junit 提供的套件输出
对此的任何指示都非常感谢
该类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);