我有一个程序可以测试Test#
子类中的每个方法,并以JUnit的XML格式输出XML。
例如:
class ExampleTest : Test
{
Void testOne()
{
...
}
}
我想执行testOne
方法并捕获其中产生的标准输出和标准错误。此out
和err
输出将包含在XML报告中。
我的第一个想法是看sys::Env
。环境类sys::Env
包含err
和out
,但只读取。
我的第二个想法是,sys::Process
可以针对每种测试方法启动,并重定向sys::Process#.err
和sys::Process#.out
,但我担心它会非常慢。< / p>
还有其他办法吗?
答案 0 :(得分:1)
您将无法重定向当前进程的输出(实际上不应该)。
如果输出绝对必须是stdout/err
- 您需要进入处理路线。您将使用fork / jvm / stream设置命中,但与测试运行时相比,这可能是微不足道的。
更好的选择是使用Logging API进行日志记录 - 这样可以更好地控制记录内容以及发生的事情。