我有一个测试类,我正在尝试使用下面的代码从main方法运行:
Result r = org.junit.runner.JUnitCore.runClasses(TestReader.class);
Run Code Online (Sandbox Code Playgroud)
当我检查Result对象时,我可以看到已经运行了5个测试,但屏幕上没有打印任何内容.
我应该做些什么来获得输出吗?
kop*_*per 20
是的,你应该这样注册TextListener:
JUnitCore junit = new JUnitCore();
junit.addListener(new TextListener(System.out));
junit.run(TestReader.class);
Run Code Online (Sandbox Code Playgroud)
没有一种非常干净的方法可以做到这一点,因为这不是一件常见的事情。如果您正在创建一个可用于在命令行上运行测试的程序,则只需打印输出,而 JUnitCore 本身就是这样做的。
所有选项都涉及使用内部包中的类。
Result r = JUnitCore.runMain(new RealSystem(), TestReader.class.getName())
Run Code Online (Sandbox Code Playgroud)
如果您想打印到除 之外的其他内容System.out,您可以创建自己的子类org.junit.internal.JUnitSystem并使用它来代替RealSystem
您也可以使用org.junit.internal.TextListener. 请参阅JUnitCore 源代码runMain(JUnitSystem system, String... args)中的示例。
| 归档时间: |
|
| 查看次数: |
7317 次 |
| 最近记录: |