Class TestPipelineExtension

java.lang.Object
org.apache.beam.sdk.testing.TestPipelineExtension
All Implemented Interfaces:
AfterEachCallback, BeforeEachCallback, Extension, ParameterResolver

public class TestPipelineExtension extends Object implements BeforeEachCallback, AfterEachCallback, ParameterResolver
JUnit 5 extension for TestPipeline that provides the same functionality as the JUnit 4 TestRule implementation.

Use this extension to test pipelines in JUnit 5:


 @ExtendWith(TestPipelineExtension.class)
 class MyPipelineTest {
   @Test
   @Category(NeedsRunner.class)
   void myPipelineTest(TestPipeline pipeline) {
     final PCollection<String> pCollection = pipeline.apply(...)
     PAssert.that(pCollection).containsInAnyOrder(...);
     pipeline.run();
   }
 }
 

You can also create the extension yourself for more control:


 class MyPipelineTest {
   @RegisterExtension
   final TestPipelineExtension pipeline = TestPipelineExtension.create();

   @Test
   void testUsingPipeline() {
     pipeline.apply(...);
     pipeline.run();
   }
 }