code: def testRun(self, mock_kube_utils):
      _initialize_executed_components()
      mock_kube_utils.is_inside_cluster.return_value = True
  
      component_a = _FakeComponent(
          spec=_FakeComponentSpecA(
              output=types.Channel(type=_ArtifactTypeA)
          )
      )
      component_b = _FakeComponent(
          spec=_FakeComponentSpecB(
              a=component_a.outputs["output"],
              output=types.Channel(type=_ArtifactTypeB),
          )
      )
      component_c = _FakeComponent(
          spec=_FakeComponentSpecC(
              a=component_a.outputs["output"],
              output=types.Channel(type=_ArtifactTypeC),
          )
      )
      component_c.add_upstream_node(component_b)
      component_d = _FakeComponent(
          spec=_FakeComponentSpecD(
              b=component_b.outputs["output"],
              c=component_c.outputs["output"],
              output=types.Channel(type=_ArtifactTypeD),
          )
      )
      component_e = _FakeComponent(
          spec=_FakeComponentSpecE(
              a=component_a.outputs["output"],
              b=component_b.outputs["output"],
              d=component_d.outputs["output"],
              output=types.Channel(type=_ArtifactTypeE),
          )
      )
  
      test_pipeline = pipeline.Pipeline(
          pipeline_name="x",
          pipeline_root="y",
          metadata_connection_config=metadata_store_pb2.ConnectionConfig(),
          components=[
              component_d,
              component_c,
              component_a,
              component_b,
              component_e,
          ],
      )
  
      kubernetes_dag_runner.KubernetesDagRunner().run(test_pipeline)
      self.assertEqual(
          _executed_components,
          [
              "a.Wrapper",
              "b.Wrapper",
              "c.Wrapper",
              "d.Wrapper",
              "e.Wrapper",
          ],
      )
  
imports: from unittest import mock
  import tensorflow
  from tfx import types
  from tfx.dsl.components.base import base_component
  from tfx.dsl.components.base import base_executor
  from tfx.dsl.components.base import base_node
  from tfx.dsl.components.base import executor_spec
  from tfx.orchestration import pipeline
  from tfx.orchestration.experimental.kubernetes import kubernetes_dag_runner
  from tfx.types.component_spec import ChannelParameter
  from ml_metadata.proto import metadata_store_pb2
label_desc: Use image node_id 1 for calling the KubernetesDagRunnerTest obj's underlying member method code with example usage: obj.testRun(mock_kube_utils) without return types