code: def testBeamComponentWithPlaceHolderArgs(self):
      # Set env vars for the placeholder
      direct_running_mode_env_var_name = "DIRECT_RUNNING_MODE"
      direct_running_mode = "multi_processing"
      direct_num_workers = 2
      num_workers_env_var_name = "NUM_WORKERS"
      num_workers_env_var_value = (
          f"--direct_num_workers={direct_num_workers}"
      )
  
      os.environ[direct_running_mode_env_var_name] = direct_running_mode
      os.environ[num_workers_env_var_name] = num_workers_env_var_value
  
      local_dag_runner.LocalDagRunner().run(
          self._GetTestBeamComponentPipeline(
              num_workers_env_var_name, direct_running_mode_env_var_name
          )
      )
  
      self.assertEqual(
          self.BEAM_ARG_VALUES["direct_num_workers"], direct_num_workers
      )
      self.assertEqual(
          self.BEAM_ARG_VALUES["direct_running_mode"],
          direct_running_mode,
      )
  
file_path: tfx/tfx/orchestration/local/local_pipeline_beam_test.py
imports: import os
  import tempfile
  import absl.testing.absltest
  import apache_beam
  from apache_beam.options import pipeline_options
  from tfx.dsl.component.experimental import annotations
  from tfx.dsl.component.experimental.decorators import component
  from tfx.dsl.placeholder import placeholder
  from tfx.orchestration import pipeline
  from tfx.orchestration.local import local_dag_runner
  from tfx.orchestration.metadata import sqlite_metadata_connection_config
label_desc: Use image node_id 3 for calling the LocalDagRunnerTest obj's underlying member method code with example usage: obj.testBeamComponentWithPlaceHolderArgs() without return types