使用junit-interface亚军,有一个方便的选项:
-q禁止stdout进行成功测试。 Stderr被打印到了 安慰 一般。将Stdout写入缓冲区并在测试时丢弃 成功。如果失败,则将缓冲区转储到控制台。自从stdio Java中的重定向是一个糟糕的问题(System.setOut()改变了静态 最终字段System.out通过本机代码)这可能不适用于所有人 场景。 Scala拥有自己的控制台,具有理智的重定向功能。如果 在类路径上检测到Scala,junit-interface尝试重新路由 scala.Console也是stdout。
我想知道是否有一种简单的方法让scalatest做同样的事情。我可以尝试自己重定向输出,但如果可能的话,我更愿意使用标准的东西。
答案 0 :(得分:0)
根据ScalaTest网站上的info,你可以设置一些标志来禁止某些消息:
如果你在build.sbt中添加这样的一行,你的记录器将不会在stdout中显示成功的测试:
testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-oN")
答案 1 :(得分:0)
实际上,这是在scalatest存储库上的github上提出的问题。您可以找到它here。
如此处所建议,您可以将-oNCXEHLOPQRM
添加到运行选项。这意味着您需要在sbt中添加:
testOptions in Test += Tests.Argument("-oNCXEHLOPQRM")
仅此一项可能就足够了,因为sbt本身会记录自己的启动,并且所有测试都通过了。如果要仅通过失败的测试,可以将-error
标志添加到sbt命令,然后它将跳过信息日志级别。
在这种情况下,当所有测试通过时,输出将完全为空。 这样的命令的示例将是:
sbt test -error
如果您想进一步了解scala测试配置报告,可以here进行。他们有很多选择。