Find and load step definitions, and them find and load
        features under `base_path` specified on constructor

def run(self):
        """ Find and load step definitions, and them find and load
        features under `base_path` specified on constructor
        """
        try:
            self.loader.find_and_load_step_definitions()
        except StepLoadingError, e:
            print "Error loading step definitions:\n", e
            return

        results = []
        if self.explicit_features:
            features_files = self.explicit_features
        else:
            features_files = self.loader.find_feature_files()
        if self.random:
            random.shuffle(features_files)

        if not features_files:
            self.output.print_no_features_found(self.loader.base_dir)
            return

        processes = Pool(processes=self.parallelization)
        test_results_it = processes.imap_unordered(
            worker_process, [(self, filename) for filename in features_files]
        )
        
        all_total = ParallelTotalResult()
        for result in test_results_it:
            all_total += result['total']
            sys.stdout.write(result['stdout'])
            sys.stderr.write(result['stderr'])

        return all_total