如何失败,如何只显示最新测试的stdout

Mys*_*Dan 7 scala scalatest

使用junit-interface runner,有一个方便的选项:

-q抑制stdout成功测试.Stderr通常会打印到控制台.Stdout被写入缓冲区并在测试成功时被丢弃.如果失败,则将缓冲区转储到控制台.由于Java中的stdio重定向是一个糟糕的问题(System.setOut()通过本机代码更改静态最终字段System.out),这可能不适用于所有方案.Scala拥有自己的控制台,具有理智的重定向功能.如果在类路径上检测到Scala,则junit-interface也会尝试重新路由scala.Console的stdout.

我想知道是否有一种简单的方法让scalatest做同样的事情.我可以尝试自己重定向输出,但如果可能的话,我更愿意使用标准的东西.

xer*_*oqu 0

根据ScalaTest 网站上的此信息,您可以设置一些标志来抑制某些消息:

如果您在 build.sbt 中添加这样的行,您的记录器将不会在标准输出中显示成功的测试:

testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-oN")