我有一个测试类,我正在尝试从具有以下代码的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)
。