@@ -277,10 +277,6 @@ void prepareGlue(Locale locale) throws DuplicateStepDefinitionException {
277
277
stepDefinitionsHashCode = stepDefinitionsHashCodeNew ;
278
278
}
279
279
280
- stepDefinitionsChanged = true ; // TODO comment this line to make build
281
- // fail, e.g. due to
282
- // io.cucumber.core.plugin.PrettyFormatterTest.should_handle_scenario_outline
283
-
284
280
// TODO: separate prepared and unprepared glue into different classes
285
281
if (parameterTypesDefinitionsChanged ) {
286
282
// parameters changed from the previous scenario => re-register them
@@ -367,7 +363,7 @@ void prepareGlue(Locale locale) throws DuplicateStepDefinitionException {
367
363
throw new DuplicateStepDefinitionException (previous , stepDefinition );
368
364
}
369
365
stepDefinitionsByPattern .put (coreStepDefinition .getExpression ().getSource (), coreStepDefinition );
370
- emitStepDefined (coreStepDefinition );
366
+ emitStepDefined (coreStepDefinition ); // FIXME if step definition are cached, the StepDefinedEvent is not emitted anymore, so io.cucumber.core.runtime.RuntimeTest#generates_events_for_glue_and_scenario_scoped_glue fails
371
367
});
372
368
}
373
369
@@ -515,19 +511,22 @@ private List<PickleStepDefinitionMatch> stepDefinitionMatches(URI uri, Step step
515
511
}
516
512
517
513
void removeScenarioScopedGlue () {
518
- removeScenarioScopedGlue (beforeHooks );
519
- removeScenarioScopedGlue (beforeStepHooks );
520
- removeScenarioScopedGlue (afterHooks );
521
- removeScenarioScopedGlue (afterStepHooks );
522
- removeScenarioScopedGlue (stepDefinitions );
523
- removeScenarioScopedGlue (dataTableTypeDefinitions );
524
- removeScenarioScopedGlue (docStringTypeDefinitions );
525
- removeScenarioScopedGlue (parameterTypeDefinitions );
526
- removeScenarioScopedGlue (defaultParameterTransformers );
527
- removeScenarioScopedGlue (defaultDataTableEntryTransformers );
528
- removeScenarioScopedGlue (defaultDataTableCellTransformers );
529
-
530
- stepDefinitionsByPattern .clear ();
514
+ boolean dirty = false ;
515
+ dirty |= removeScenarioScopedGlue (beforeHooks );
516
+ dirty |= removeScenarioScopedGlue (beforeStepHooks );
517
+ dirty |= removeScenarioScopedGlue (afterHooks );
518
+ dirty |= removeScenarioScopedGlue (afterStepHooks );
519
+ dirty |= removeScenarioScopedGlue (stepDefinitions );
520
+ dirty |= removeScenarioScopedGlue (dataTableTypeDefinitions );
521
+ dirty |= removeScenarioScopedGlue (docStringTypeDefinitions );
522
+ dirty |= removeScenarioScopedGlue (parameterTypeDefinitions );
523
+ dirty |= removeScenarioScopedGlue (defaultParameterTransformers );
524
+ dirty |= removeScenarioScopedGlue (defaultDataTableEntryTransformers );
525
+ dirty |= removeScenarioScopedGlue (defaultDataTableCellTransformers );
526
+
527
+ if (dirty ) {
528
+ stepDefinitionsByPattern .clear ();
529
+ }
531
530
532
531
}
533
532
0 commit comments