【问题标题】:Suppress std.err during testing在测试期间抑制 std.err
【发布时间】:2015-04-07 10:27:38
【问题描述】:

我正在运行使用第三方库的 scalacheck 测试。对于我正在检查的属性,该库向 std.err 打印了很多内容。如何仅在测试执行期间抑制这种噪音?

我尝试在规范本身中重定向 std.err,但这没有效果。

  def aFailureScenario = prop { input: Input =>
    System.setErr(new PrintStream(new ByteArrayOutputStream()))
    subject.method(input) must beNone
  }

【问题讨论】:

  • 你的库是不是一个 Scala 库,它可能使用Console.err 而不仅仅是System.err?我也无法重现您所看到的。它适用于我的简单规范。
  • 或许你可以试试Console.setErrConsole.withErr

标签: scala specs2


【解决方案1】:

不知道为什么 prop 块内的错误设置不起作用,但是这样做:

class FooSpec extends Specification with BeforeAll {
  ...
  override def beforeAll(): Unit = 
    System.setErr(new PrintStream(new ByteArrayOutputStream()))
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2023-03-26
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多