我们有一个执行JAR的beanshell测试,该测试反过来在stdout上打印响应;与this文章中描述的过程非常相似。但是,我想知道是否有一种方法可以验证日志中打印的语句作为测试的一部分,而无需借助手动验证。
您的测试设计看起来很模糊,但是,如果您没有想到比捕获标准输出更好的选择,则可以创建自己的PrintStream并使用System.setOut()函数使用自己的PrintStream代替STDOUT。类似于:
将以下代码放入“脚本|区域:
def baos = new ByteArrayOutputStream()
def ps = new PrintStream(baos)
System.setOut(ps)
props.put('baos', baos)
完成后,您可以使用以下代码访问所有已打印到STDOUT的消息:
def stdout = props.get('baos').toString()
演示: