Set up a Scio job for end-to-end unit testing.
To be used in a PipelineSpec. For example:
import com.spotify.scio.testing._
class WordCountTest extends PipelineSpec {
// Mock input data, mock distributed cache and expected resultval inData = Seq("a b c d e", "a b a b")
val distCache = Map(1 -> "Jan", 2 -> "Feb", 3 -> "Mar")
val expected = Seq("a: 3", "b: 3", "c: 1", "d: 1", "e: 1")
// Test specification"WordCount" should "work" in {
JobTest("com.spotify.scio.examples.WordCount")
// Or the type safe version// JobTest[com.spotify.scio.examples.WordCount.type]// Command line arguments
.args("--input=in.txt", "--output=out.txt")
// Mock input data
.input(TextIO("in.txt"), inData)
// Mock distributed cache
.distCache(DistCacheIO("gs://dataflow-samples/samples/misc/months.txt"), distCache)
// Verify output
.output(TextIO("out.txt")) { actual => actual should containInAnyOrder (expected) }
// Run job test
.run()
}
}
Linear Supertypes
AnyRef, Any
Ordering
Alphabetic
By Inheritance
Inherited
JobTest
AnyRef
Any
Hide All
Show All
Visibility
Public
All
Type Members
case classBeamOptions(opts: List[String]) extends Product with Serializable
Set up a Scio job for end-to-end unit testing. To be used in a PipelineSpec. For example: