class JunitFeatureRunner extends org.junit.runner.Runner {

    public final void init(final Class<?> reportedClass, final List<Class<?>> stepImplementationClasses,
                           final String featureFile, final String tags, final String subStepsFile,
                           final Class<?>[] beforeAndAfterImplementations) {
        init(reportedClass, stepImplementationClasses, featureFile, tags, subStepsFile, true, null,
                EclipseDescriptionProvider.class, beforeAndAfterImplementations);
    }

}

class JunitFeatureRunnerTest extends org.junit.runner.Runner {

    private File baseResourcesDir;

    @Test(expected = SubstepsConfigurationException.class)
    public void testMissingSubStepCausesFailure() {

        final String feature = getResourcePath( "features/error.feature");
        final String tag = "@bug_missing_sub_step_impl";
        final String substeps = getResourcePath( "substeps/error.substeps");

        final JunitFeatureRunner runner = new JunitFeatureRunner();

        final List<Class<?>> stepImplsList = new ArrayList<>();
        stepImplsList.add(TestStepImplementations.class);

        runner.init(this.getClass(), stepImplsList, feature, tag, substeps, null);
    }

}