我们正在使用com.spotify.scio.testing.JobTest对我们的scio管道进行端到端测试。管道包括对不经常到达的配置数据流敏感的数据排序的DoFn。
我们正在将配置值combinedSampleConfig
的有序列表作为输入传递给JobTest Builder。当我们运行端到端测试时,有没有办法让JobTest保留此CustomIO输入流的顺序?
我看到测试框架在测试单个组件时可以很好地控制源到达时间(使用advanceProcessingTime
),但是看不到如何将其应用于使用JobTest进行的端到端测试。
JobTest[MyApp.type]
.args(commonArgs ++ Seq(
"--numWorkers=1",
"--maxNumWorkers=1",
): _*
)
.input(CustomIO[PubsubMessage](CONFIG_ID), combinedSampleConfig)
.input(CustomIO[IndicatorEntry](INPUT_ID), sampleInput)
.output(CustomIO[EnrichedIndicatorEntry](AGG_ID)) {
_ should containInAnyOrder (expectedAggs)
}
.output(CustomIO[EnrichedIndicatorEntry](EVENT_ID)) {
_ should containInAnyOrder (expectedEvents)
}
.run()