我有一个测试类,我正在尝试从具有以下代码的main方法运行:

Result r = org.junit.runner.JUnitCore.runClasses(TestReader.class);

当我检查Result对象时,我可以看到已经运行了5个测试,但是屏幕上没有任何打印内容。

我应该做些其他事情来获得输出吗?

最佳答案

这样做不是很干净的方法,因为这不是常见的事情。仅当创建用于在命令行上运行测试的程序时,才需要打印输出,而JUnitCore本身会执行此操作。

所有选项都涉及在内部包中使用类。

Result r = JUnitCore.runMain(new RealSystem(), TestReader.class.getName())

如果要打印到System.out以外的其他内容,则可以创建自己的org.junit.internal.JUnitSystem子类,并使用它代替RealSystem
您也可以使用org.junit.internal.TextListener。有关示例,请参见the JUnitCore source中的runMain(JUnitSystem system, String... args)

10-07 20:37