private void SetupMetadata(TestClassGenerationContext generationContext, out bool isIgnored) { var metadata = FeatureMetadata.GetFeatureMetadata(generationContext.Document); _container.Resolve <FeatureMetadataProvider>()[generationContext.Document] = metadata; isIgnored = metadata.IsIgnored(); }
public static FeatureMetadata GetFeatureMetadata(SpecFlowDocument document) { var metadata = new FeatureMetadata(); var lines = File.ReadAllLines(document.SourceFilePath); metadata._isFeatureIgnored = ContainsAttribute(lines, document.Feature.Location, 0, IgnoreFeature); int previousElementLine = document.Feature.Location.Line; if (document.SpecFlowFeature.Background != null) { foreach (Step backgroundStep in document.SpecFlowFeature.Background.Steps) { bool isIgnoredStep = ContainsAttribute(lines, backgroundStep.Location, previousElementLine, IgnoreStep); if (isIgnoredStep) { metadata._ignoredSteps.Add(backgroundStep); } previousElementLine = backgroundStep.Location.Line; } } foreach (Scenario scenario in document.SpecFlowFeature.Children.OfType <Scenario>()) { bool isIgnoredScenario = ContainsAttribute(lines, scenario.Location, previousElementLine, IgnoreScenario); if (isIgnoredScenario) { metadata._ignoredScenarios.Add(scenario); } previousElementLine = scenario.Location.Line; foreach (Step step in scenario.Steps) { bool isIgnoredStep = ContainsAttribute(lines, step.Location, previousElementLine, IgnoreStep); if (isIgnoredStep) { metadata._ignoredSteps.Add(step); } previousElementLine = step.Location.Line; } } return(metadata); }