junit测试(其实用的是testNG),有2个class:testClass1,testClass2内都有
object.Function(System.out, param1, param2, param3).write()方法在控制台打印信息。
在Function方法里面有System.out.close()
用junit单独运行testClass1或testClass2都可以成功打印
但是我用Ant(其实用的是Maven),一起运行testClass1,testClass2,后面一个test就不能成功打印信息。
自己的理解:运行到test2的时候,System.out已经被test1中close了
怎么解决这问题?是不是应该将System.out换掉?但是不知道怎么换。
或者有什么好的解决方法没?
期待您的帮助,感激涕零。。。
再将System.out换成
ReplaceSystemOut replace_system_out = new ReplaceSystemOut();
是Fuction([b]PrintStream s[/b], param1, param2, param3)吗?
将System.out换成
PrintStream replace_system_out = new PrintStream(xxx);
我就奇怪了,好好地谁会调用System.out.close()啊 这个流 你关它干什么哦 ??
public class ReplaceSystemOut extends PrintStream{
public ReplaceSystemOut(){
super(System.out);
}
//屏蔽这个close方法
public void close(){
System.out.println("Invoke PrintStream close method!!");
}
}