docstr: E2E test for pipeline with runtime parameter.
docstr_tok: ["E2E","test","for","pipeline","with","runtime","parameter","."]
code: def testEndToEndPipelineRun(self):
      """E2E test for pipeline with runtime parameter."""
      pipeline_name = "kubeflow-v2-e2e-test-{}".format(self._test_id)
      kubeflow_pipeline = penguin_pipeline_kubeflow.create_pipeline(
          pipeline_name=pipeline_name,
          pipeline_root=self._pipeline_root(pipeline_name),
          data_root=self._penguin_data_root,
          module_file=self._penguin_module_file,
          enable_tuning=False,
          enable_cache=True,
          user_provided_schema_path=self._penguin_schema_file,
          ai_platform_training_args=penguin_pipeline_kubeflow._ai_platform_training_args,
          ai_platform_serving_args=penguin_pipeline_kubeflow._ai_platform_serving_args,
          beam_pipeline_args=penguin_pipeline_kubeflow._beam_pipeline_args_by_runner[
              "DirectRunner"
          ],
          use_cloud_component=False,
          use_aip=False,
          use_vertex=False,
          serving_model_dir=self._serving_model_dir,
      )
  
      self._run_pipeline(
          pipeline=kubeflow_pipeline,
          parameter_values={
              "train-args": {"num_steps": 100},
              "eval-args": {"num_steps": 50},
          },
      )
      self.assertTrue(fileio.exists(self._serving_model_dir))
  
file_path: tfx/tfx/examples/penguin/penguin_pipeline_kubeflow_e2e_test.py
imports: import os
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.examples.penguin import penguin_pipeline_kubeflow
  from tfx.orchestration.kubeflow import test_utils
  from tfx.orchestration.kubeflow.v2.e2e_tests import base_test_case
  from tfx.utils import io_utils
label_desc: Use image node_id 2 for calling the PenguinPipelineKubeflowV2Test obj's underlying member method code with example usage: obj.testEndToEndPipelineRun() without return types