public UnitTestFeatureGenerator(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, SpecFlow.Configuration.SpecFlowConfiguration specFlowConfiguration, IDecoratorRegistry decoratorRegistry)
 {
     this.testGeneratorProvider  = testGeneratorProvider;
     this.codeDomHelper          = codeDomHelper;
     this._specFlowConfiguration = specFlowConfiguration;
     this.decoratorRegistry      = decoratorRegistry;
 }
Ejemplo n.º 2
0
 public static UnitTestFeatureGenerator CreateUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider)
 {
     var codeDomHelper = new CodeDomHelper(CodeDomProviderLanguage.CSharp);
     return new UnitTestFeatureGenerator(testGeneratorProvider, codeDomHelper,
                                          new GeneratorConfiguration { AllowRowTests = true, AllowDebugGeneratedFiles = true },
                                          new DecoratorRegistryStub());
 }
Ejemplo n.º 3
0
        public TestClassGenerationContext(
            IUnitTestGeneratorProvider unitTestGeneratorProvider,
            SpecFlowDocument document,
            CodeNamespace ns,
            CodeTypeDeclaration testClass,
            CodeMemberField testRunnerField,
            CodeMemberMethod testClassInitializeMethod,
            CodeMemberMethod testClassCleanupMethod,
            CodeMemberMethod testInitializeMethod,
            CodeMemberMethod testCleanupMethod,
            CodeMemberMethod scenarioInitializeMethod,
            CodeMemberMethod scenarioStartMethod,
            CodeMemberMethod scenarioCleanupMethod,
            CodeMemberMethod featureBackgroundMethod,
            bool generateRowTests)
        {
            UnitTestGeneratorProvider = unitTestGeneratorProvider;
            Document                  = document;
            Namespace                 = ns;
            TestClass                 = testClass;
            TestRunnerField           = testRunnerField;
            TestClassInitializeMethod = testClassInitializeMethod;
            TestClassCleanupMethod    = testClassCleanupMethod;
            TestInitializeMethod      = testInitializeMethod;
            TestCleanupMethod         = testCleanupMethod;
            ScenarioInitializeMethod  = scenarioInitializeMethod;
            ScenarioStartMethod       = scenarioStartMethod;
            ScenarioCleanupMethod     = scenarioCleanupMethod;
            FeatureBackgroundMethod   = featureBackgroundMethod;
            GenerateRowTests          = generateRowTests;

            CustomData = new Dictionary <string, object>();
        }
Ejemplo n.º 4
0
        public static TestClassGenerationContext CreateContextFromOriginContext(
            TestClassGenerationContext originContext,
            IUnitTestGeneratorProvider baseUnitTestGeneratorProvider)
        {
            var testClass = new CodeTypeDeclaration(NamingHelper.GetTestClassName(originContext.Document.SpecFlowFeature));

            originContext.Namespace.Types.Add(testClass);

            var masterContext = new TestClassGenerationContext(
                unitTestGeneratorProvider: baseUnitTestGeneratorProvider,
                document: originContext.Document,
                ns: originContext.Namespace,
                testClass: testClass,
                testRunnerField: DeclareTestRunnerMember(testClass),
                testClassInitializeMethod: CreateMethod(testClass),
                testClassCleanupMethod: CreateMethod(testClass),
                testInitializeMethod: CreateMethod(testClass),
                testCleanupMethod: CreateMethod(testClass),
                scenarioInitializeMethod: CreateMethod(testClass),
                scenarioStartMethod: CreateMethod(testClass),
                scenarioCleanupMethod: CreateMethod(testClass),
                featureBackgroundMethod: CreateMethod(testClass),
                generateRowTests: false
                );

            return(masterContext);
        }
 public SpecFlowUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, GeneratorConfiguration generatorConfiguration)
 {
     this.testGeneratorProvider = testGeneratorProvider;
     this.codeDomHelper         = codeDomHelper;
     this.codeDomHelper.InjectIfRequired(this.testGeneratorProvider);
     this.generatorConfiguration = generatorConfiguration;
 }
Ejemplo n.º 6
0
 public TestClassGenerator(IDecoratorRegistry decoratorRegistry, IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, SpecFlowConfiguration specFlowConfiguration)
 {
     _decoratorRegistry     = decoratorRegistry;
     _testGeneratorProvider = testGeneratorProvider;
     _codeDomHelper         = codeDomHelper;
     _specFlowConfiguration = specFlowConfiguration;
 }
Ejemplo n.º 7
0
 public UnitTestFeatureGenerator(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, GeneratorConfiguration generatorConfiguration, IDecoratorRegistry decoratorRegistry)
 {
     this.testGeneratorProvider  = testGeneratorProvider;
     this.codeDomHelper          = codeDomHelper;
     this.generatorConfiguration = generatorConfiguration;
     this.decoratorRegistry      = decoratorRegistry;
 }
Ejemplo n.º 8
0
 public RetryUnitTestFeatureGenerator(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, GeneratorConfiguration generatorConfiguration, IDecoratorRegistry decoratorRegistry, ITagFilterMatcher tagFilterMatcher)
 {
     this.testGeneratorProvider  = testGeneratorProvider;
     this.codeDomHelper          = codeDomHelper;
     this.generatorConfiguration = generatorConfiguration;
     this.decoratorRegistry      = decoratorRegistry;
     this.tagFilterMatcher       = tagFilterMatcher;
 }
Ejemplo n.º 9
0
 public SpecFlowUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, bool allowDebugGeneratedFiles, bool allowRowTests)
 {
     this.testGeneratorProvider = testGeneratorProvider;
     this.codeDomHelper         = codeDomHelper;
     this.codeDomHelper.InjectIfRequired(this.testGeneratorProvider);
     this.allowDebugGeneratedFiles = allowDebugGeneratedFiles;
     this.allowRowTests            = allowRowTests;
 }
 public UnitTestFeatureGenerator(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, GeneratorConfiguration generatorConfiguration, IDecoratorRegistry decoratorRegistry, IStepDefinitionMatchService stepDefinitionMatchService)
 {
     this.testGeneratorProvider   = testGeneratorProvider;
     this.codeDomHelper           = codeDomHelper;
     this.generatorConfiguration  = generatorConfiguration;
     this.decoratorRegistry       = decoratorRegistry;
     m_stepDefinitionMatchService = stepDefinitionMatchService;
 }
 public UnitTestMethodGenerator(IUnitTestGeneratorProvider unitTestGeneratorProvider, IDecoratorRegistry decoratorRegistry, CodeDomHelper codeDomHelper, ScenarioPartHelper scenarioPartHelper, SpecFlowConfiguration specFlowConfiguration)
 {
     _unitTestGeneratorProvider = unitTestGeneratorProvider;
     _decoratorRegistry         = decoratorRegistry;
     _codeDomHelper             = codeDomHelper;
     _scenarioPartHelper        = scenarioPartHelper;
     _specFlowConfiguration     = specFlowConfiguration;
 }
        //NEW CODE END

        public FeatureGeneratorExtended(IUnitTestGeneratorProvider testGeneratorProvider, CodeDomHelper codeDomHelper, SpecFlowConfiguration specFlowConfiguration, IDecoratorRegistry decoratorRegistry, string variantKey)
            : base(decoratorRegistry, testGeneratorProvider, codeDomHelper, specFlowConfiguration)
        {
            _testGeneratorProvider = testGeneratorProvider;
            _codeDomHelper         = codeDomHelper;
            _specFlowConfiguration = specFlowConfiguration;
            _decoratorRegistry     = decoratorRegistry;
            _variantHelper         = new VariantHelper(variantKey); //NEW CODE
        }
        public static SpecFlowUnitTestConverter CreateUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider)
        {
            var codeDomHelper = new CodeDomHelper(CodeDomProviderLanguage.CSharp);

            return(new SpecFlowUnitTestConverter(testGeneratorProvider, codeDomHelper,
                                                 new GeneratorConfiguration {
                AllowRowTests = true, AllowDebugGeneratedFiles = true
            }));
        }
        protected CodeNamespace SetupFeatureGenerator <T>(SpecFlowDocument document, string testClassName = "TestClassName", string tagetNamespace = "Target.Namespace") where T : IUnitTestGeneratorProvider
        {
            var codeDomHelper = new CodeDomHelper(CodeDomProviderLanguage.CSharp);

            _unitTestGeneratorProvider = (T)Activator.CreateInstance(typeof(T), codeDomHelper, SampleFeatureFile.Variant);
            var featureGenerator = FeatureGenerator(codeDomHelper);

            return(featureGenerator.GenerateUnitTestFixture(document, testClassName, tagetNamespace));
        }
Ejemplo n.º 15
0
        public static UnitTestFeatureGenerator CreateUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider)
        {
            var codeDomHelper        = new CodeDomHelper(CodeDomProviderLanguage.CSharp);
            var runtimeConfiguration = ConfigurationLoader.GetDefault();

            runtimeConfiguration.AllowRowTests            = true;
            runtimeConfiguration.AllowDebugGeneratedFiles = true;

            return(new UnitTestFeatureGenerator(testGeneratorProvider, codeDomHelper, runtimeConfiguration, new DecoratorRegistryStub()));
        }
Ejemplo n.º 16
0
 public RetryUnitTestFeatureGenerator(IUnitTestGeneratorProvider testGeneratorProvider,
                                      CodeDomHelper codeDomHelper, SpecFlowConfiguration specFlowConfiguration,
                                      IDecoratorRegistry decoratorRegistry, ITagFilterMatcher tagFilterMatcher)
 {
     _testGeneratorProvider = testGeneratorProvider;
     _codeDomHelper         = codeDomHelper;
     _specFlowConfiguration = specFlowConfiguration;
     _decoratorRegistry     = decoratorRegistry;
     _tagFilterMatcher      = tagFilterMatcher;
 }
        public static UnitTestFeatureGenerator CreateUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider)
        {
            var codeDomHelper = new CodeDomHelper(CodeDomProviderLanguage.CSharp);

            return(new UnitTestFeatureGenerator(testGeneratorProvider, codeDomHelper,
                                                new GeneratorConfiguration {
                AllowRowTests = true, AllowDebugGeneratedFiles = true
            },
                                                new DecoratorRegistryStub()));
        }
Ejemplo n.º 18
0
 public UnitTestFeatureGenerator(
     IUnitTestGeneratorProvider testGeneratorProvider,
     CodeDomHelper codeDomHelper,
     SpecFlowConfiguration specFlowConfiguration,
     IDecoratorRegistry decoratorRegistry)
 {
     _testGeneratorProvider = testGeneratorProvider;
     _codeDomHelper         = codeDomHelper;
     _specFlowConfiguration = specFlowConfiguration;
     _decoratorRegistry     = decoratorRegistry;
 }
Ejemplo n.º 19
0
        public static IFeatureGenerator CreateFeatureGenerator(this IUnitTestGeneratorProvider testGeneratorProvider, string[] addNonParallelizableMarkerForTags = null)
        {
            var container             = new GeneratorContainerBuilder().CreateContainer(new SpecFlowConfigurationHolder(ConfigSource.Default, null), new ProjectSettings(), Enumerable.Empty <GeneratorPluginInfo>());
            var specFlowConfiguration = container.Resolve <SpecFlowConfiguration>();

            specFlowConfiguration.AddNonParallelizableMarkerForTags = addNonParallelizableMarkerForTags;
            container.RegisterInstanceAs(testGeneratorProvider);

            var generator = container.Resolve <UnitTestFeatureGeneratorProvider>().CreateGenerator(ParserHelper.CreateAnyDocument());

            return(generator);
        }
 public SharedBackgroundFeatureGenerator(
     IUnitTestGeneratorProvider testGeneratorProvider,
     CodeDomHelper codeDomHelper,
     SpecFlowConfiguration generatorConfiguration,
     IDecoratorRegistry decoratorRegistry,
     ProjectSettings projectSettings,
     IGherkinParserFactory gherkinParserFactory)
 {
     _generatorConfiguration   = generatorConfiguration;
     _projectSettings          = projectSettings;
     _gherkinParserFactory     = gherkinParserFactory;
     _unitTestFeatureGenerator = new UnitTestFeatureGenerator(testGeneratorProvider, codeDomHelper, generatorConfiguration, decoratorRegistry);
 }
Ejemplo n.º 21
0
 public UnitTestFeatureGenerator(
     IUnitTestGeneratorProvider testGeneratorProvider,
     CodeDomHelper codeDomHelper,
     SpecFlowConfiguration specFlowConfiguration,
     IDecoratorRegistry decoratorRegistry)
 {
     _testGeneratorProvider   = testGeneratorProvider;
     _codeDomHelper           = codeDomHelper;
     _specFlowConfiguration   = specFlowConfiguration;
     _decoratorRegistry       = decoratorRegistry;
     _linePragmaHandler       = new LinePragmaHandler(_specFlowConfiguration, _codeDomHelper);
     _scenarioPartHelper      = new ScenarioPartHelper(_specFlowConfiguration, _codeDomHelper, _testGeneratorProvider);
     _unitTestMethodGenerator = new UnitTestMethodGenerator(testGeneratorProvider, decoratorRegistry, _codeDomHelper, _scenarioPartHelper, _specFlowConfiguration);
 }
Ejemplo n.º 22
0
        public AttributeGeneratorProvider(CodeDomHelper codeDomHelper, SpecFlowProjectConfiguration configuration)
        {
            string runtimeUnitTestProvider = configuration.SpecFlowConfiguration.UnitTestProvider;

            switch (runtimeUnitTestProvider.ToUpper(CultureInfo.InvariantCulture))
            {
            case "NUNIT":
                baseGeneratorProvider = new NUnit3TestGeneratorProvider(codeDomHelper);
                break;

            default:
                throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "The specified unit test provider '{0}' is not usable with NUnit wrapper",
                                                          runtimeUnitTestProvider));
            }

            this.codeDomHelper = codeDomHelper;
        }
Ejemplo n.º 23
0
        public CodeNamespace GenerateTestFileCode(FeatureFileInput featureFile, TextReader inputReader, CodeDomProvider codeProvider, CodeDomHelper codeDomHelper)
        {
            string targetNamespace = GetTargetNamespace(featureFile);

            SpecFlowLangParser parser  = new SpecFlowLangParser(project.Configuration.GeneratorConfiguration.FeatureLanguage);
            Feature            feature = parser.Parse(inputReader, featureFile.GetFullPath(project.ProjectSettings));

            IUnitTestGeneratorProvider generatorProvider = ConfigurationServices.CreateInstance <IUnitTestGeneratorProvider>(project.Configuration.GeneratorConfiguration.GeneratorUnitTestProviderType);

            codeDomHelper.InjectIfRequired(generatorProvider);

            ISpecFlowUnitTestConverter testConverter = new SpecFlowUnitTestConverter(generatorProvider, codeDomHelper, project.Configuration.GeneratorConfiguration);

            var codeNamespace = testConverter.GenerateUnitTestFixture(feature, null, targetNamespace);

            return(codeNamespace);
        }
Ejemplo n.º 24
0
        public TestClassGenerationContext(IUnitTestGeneratorProvider unitTestGeneratorProvider, Feature feature, CodeNamespace ns, CodeTypeDeclaration testClass, CodeMemberMethod testClassInitializeMethod, CodeMemberMethod testClassCleanupMethod, CodeMemberMethod testInitializeMethod, CodeMemberMethod testCleanupMethod, CodeMemberMethod scenarioInitializeMethod, CodeMemberMethod scenarioCleanupMethod, CodeMemberMethod featureBackgroundMethod, bool generateRowTests, bool generateAsynchTests)
        {
            UnitTestGeneratorProvider = unitTestGeneratorProvider;
            Feature   = feature;
            Namespace = ns;
            TestClass = testClass;
            TestClassInitializeMethod = testClassInitializeMethod;
            TestClassCleanupMethod    = testClassCleanupMethod;
            TestInitializeMethod      = testInitializeMethod;
            TestCleanupMethod         = testCleanupMethod;
            ScenarioInitializeMethod  = scenarioInitializeMethod;
            ScenarioCleanupMethod     = scenarioCleanupMethod;
            FeatureBackgroundMethod   = featureBackgroundMethod;
            GenerateRowTests          = generateRowTests;
            GenerateAsynchTests       = generateAsynchTests;

            CustomData = new Dictionary <string, object>();
        }
        public TestClassGenerationContext(IUnitTestGeneratorProvider unitTestGeneratorProvider, SpecFlowFeature feature, CodeNamespace ns, CodeTypeDeclaration testClass, CodeMemberField testRunnerField, CodeMemberMethod testClassInitializeMethod, CodeMemberMethod testClassCleanupMethod, CodeMemberMethod testInitializeMethod, CodeMemberMethod testCleanupMethod, CodeMemberMethod scenarioInitializeMethod, CodeMemberMethod scenarioCleanupMethod, CodeMemberMethod featureBackgroundMethod, bool generateRowTests)
        {
            UnitTestGeneratorProvider = unitTestGeneratorProvider;
            Feature = feature;
            Namespace = ns;
            TestClass = testClass;
            TestRunnerField = testRunnerField;
            TestClassInitializeMethod = testClassInitializeMethod;
            TestClassCleanupMethod = testClassCleanupMethod;
            TestInitializeMethod = testInitializeMethod;
            TestCleanupMethod = testCleanupMethod;
            ScenarioInitializeMethod = scenarioInitializeMethod;
            ScenarioCleanupMethod = scenarioCleanupMethod;
            FeatureBackgroundMethod = featureBackgroundMethod;
            GenerateRowTests = generateRowTests;

            CustomData = new Dictionary<string, object>();
        }
        public NCrunchAttributeGeneratorProvider(CodeDomHelper codeDomHelper, SpecFlowProjectConfiguration configuration)
        {
            string runtimeUnitTestProvider = configuration.RuntimeConfiguration.RuntimeUnitTestProvider;

            switch (runtimeUnitTestProvider.ToUpper(CultureInfo.InvariantCulture))
            {
            case "NUNIT":
                baseGeneratorProvider = new NUnitTestGeneratorProvider(codeDomHelper);
                break;

            case "MSTEST":
                baseGeneratorProvider = new MsTest2010GeneratorProvider(codeDomHelper);
                break;

            case "MSTEST.2010":
                baseGeneratorProvider = new MsTest2010GeneratorProvider(codeDomHelper);
                break;

            case "MSTEST.2008":
                baseGeneratorProvider = new MsTestGeneratorProvider(codeDomHelper);
                break;

            case "XUNIT":
                baseGeneratorProvider = new XUnitTestGeneratorProvider(codeDomHelper);
                break;

            case "MBUNIT":
                baseGeneratorProvider = new MbUnitTestGeneratorProvider(codeDomHelper);
                break;

            case "MBUNIT.3":
                baseGeneratorProvider = new MbUnit3TestGeneratorProvider(codeDomHelper);
                break;

            default:
                throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "The specified unit test provider '{0}' is not usable with NCrunch wrapper",
                                                          runtimeUnitTestProvider));
            }

            this.codeDomHelper = codeDomHelper;
        }
Ejemplo n.º 27
0
        private CodeNamespace GenerateTestFileCode(FeatureFileInput featureFileInput, CodeDomHelper codeDomHelper)
        {
            string targetNamespace = GetTargetNamespace(featureFileInput) ?? "SpecFlow.GeneratedTests";

            SpecFlowLangParser parser = new SpecFlowLangParser(generatorConfiguration.FeatureLanguage);
            Feature            feature;

            using (var contentReader = featureFileInput.GetFeatureFileContentReader(projectSettings))
            {
                feature = parser.Parse(contentReader, featureFileInput.GetFullPath(projectSettings));
            }

            IUnitTestGeneratorProvider generatorProvider = ConfigurationServices.CreateInstance <IUnitTestGeneratorProvider>(generatorConfiguration.GeneratorUnitTestProviderType);

            codeDomHelper.InjectIfRequired(generatorProvider);

            ISpecFlowUnitTestConverter testConverter = new SpecFlowUnitTestConverter(generatorProvider, codeDomHelper, generatorConfiguration.AllowDebugGeneratedFiles, generatorConfiguration.AllowRowTests);

            var codeNamespace = testConverter.GenerateUnitTestFixture(feature, null, targetNamespace);

            return(codeNamespace);
        }
Ejemplo n.º 28
0
 public ScenarioPartHelper(SpecFlowConfiguration specFlowConfiguration, CodeDomHelper codeDomHelper, IUnitTestGeneratorProvider testGeneratorProvider)
 {
     _specFlowConfiguration = specFlowConfiguration;
     _codeDomHelper         = codeDomHelper;
     _testGeneratorProvider = testGeneratorProvider;
 }
Ejemplo n.º 29
0
 public void SetUp()
 {
     _unitTestGeneratorProvider = Substitute.For <IUnitTestGeneratorProvider>();
     _codeDomHelper             = new CodeDomHelper(CodeDomProviderLanguage.CSharp);
     _sut = Substitute.ForPartsOf <SeleniumNUnitTestGeneratorProvider>(_codeDomHelper);
 }
Ejemplo n.º 30
0
 public static SpecFlowUnitTestConverter CreateUnitTestConverter(IUnitTestGeneratorProvider testGeneratorProvider)
 {
     var codeDomHelper = new CodeDomHelper(CodeDomProviderLanguage.CSharp);
     return new SpecFlowUnitTestConverter(testGeneratorProvider, codeDomHelper, 
                                          new GeneratorConfiguration { AllowRowTests = true, AllowDebugGeneratedFiles = true});
 }
 public NUnitSimpleGeneratorProvider(CodeDomHelper codeDomHelper)
 {
     _unitTestGeneratorProvider = new NUnit3TestGeneratorProvider(codeDomHelper);
     CodeDomHelper = codeDomHelper;
 }
Ejemplo n.º 32
0
 public NCrunchAttributeGeneratorProvider(CodeDomHelper codeDomHelper)
 {
     baseGeneratorProvider = new NUnitTestGeneratorProvider(codeDomHelper);
     this.codeDomHelper    = codeDomHelper;
 }
 public IntegrationFactGeneratorProvider(CodeDomHelper codeDomHelper)
 {
     CodeDomHelper   = codeDomHelper;
     _innerGenerator = new XUnit2TestGeneratorProvider(codeDomHelper);
 }