gpt4 book ai didi

java - 如何覆盖 JUnit 测试套件的默认输出

转载 作者:行者123 更新时间:2023-11-30 11:46:12 24 4
gpt4 key购买 nike

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

好的(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);

关于java - 如何覆盖 JUnit 测试套件的默认输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com