### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
mock_task_object_1()
            raise AirflowException("boooom")
        @task_decorator
        def check_task_2(my_input):
            
            mock_task_object_2(my_input)
        with dag:
            check_task_2(check_task())
        dag.test()
        mock_handle_object_1.assert_called_with("task check_task failed...")
        mock_handle_object_2.assert_called_with("dag test_local_testing_conn_file run failed...")
        mock_task_object_1.assert_called()
        mock_task_object_2.assert_not_called()
    def test_dag_test_with_task_mapping(self):
        dag = DAG(dag_id="test_local_testing_conn_file", start_date=DEFAULT_DATE)
        mock_object = mock.MagicMock()
        @task_decorator()
        def get_index(current_val, ti=None):
            return ti.map_index
        @task_decorator
        def check_task(my_input):