public static function stepsdefinitions($type, $component, $filter) {

        // We don't require the test environment to be enabled to list the steps definitions
        // so test writers can more easily set up the environment.
        behat_command::behat_setup_problem();

        // The loaded steps depends on the component specified.
        behat_config_manager::update_config_file($component, false);

        // The Moodle\BehatExtension\HelpPrinter\MoodleDefinitionsPrinter will parse this search format.
        if ($type) {
            $filter .= '&&' . $type;
        }

        if ($filter) {
            $filteroption = ' -d "' . $filter . '"';
        } else {
            $filteroption = ' -di';
        }

        // Get steps definitions from Behat.
        $options = ' --config="'.behat_config_manager::get_steps_list_config_filepath(). '" '.$filteroption;
        list($steps, $code) = behat_command::run($options);

        return $steps;
    }