运行 测试时调试 SCollection 内容

Debugging SCollection contents when running tests

在运行 单元测试 (PipelineSpec) 时,有什么方法可以查看 SCollection 的内容吗?

当 运行 在许多机器上生产某些东西时,将无法在一台机器上看到整个集合,但我想知道有没有办法查看 SCollection 的内容(例如当 运行 intellij 调试模式下的单元测试。

如果你想将调试语句打印到控制台,那么你可以使用 debug 方法,它是 SCollections 的一部分。示例代码如下所示

    val stdOutMock = new MockedPrintStream
    Console.withOut(stdOutMock) {
      runWithContext { sc =>
        val r = sc.parallelize(1 to 3).debug(prefix = "===")
        r should containInAnyOrder(Seq(1, 2, 3))
      }
    }
    stdOutMock.message.filterNot(_ == "\n") should contain theSameElementsAs
      Seq("===1", "===2", "===3")