Beispiel #1
0
        private void SetupTestClassInitializeMethod(TestClassGenerationContext generationContext)
        {
            var testClassInitializeMethod = generationContext.TestClassInitializeMethod;

            testClassInitializeMethod.ReturnType = new CodeTypeReference(typeof(Task));
            testClassInitializeMethod.Attributes = MemberAttributes.Public;
            testClassInitializeMethod.Name       = GeneratorConstants.TESTCLASS_INITIALIZE_NAME;

            _testGeneratorProvider.MarkCodeMemberMethodAsAsync(testClassInitializeMethod);

            _testGeneratorProvider.SetTestClassInitializeMethod(generationContext);

            //testRunner = await TestRunnerManager.GetTestRunnerAsync([class_name]);
            var testRunnerField = _scenarioPartHelper.GetTestRunnerExpression();

            var testRunnerParameters = new[]
            {
                new CodePrimitiveExpression(generationContext.TestClass.Name),
                new CodePrimitiveExpression(null),
                new CodePrimitiveExpression(null)
            };

            var getTestRunnerExpression = new CodeMethodInvokeExpression(
                new CodeTypeReferenceExpression(typeof(TestRunnerManager)),
                nameof(ITestRunnerManager.GetTestRunnerAsync), testRunnerParameters);

            _codeDomHelper.MarkCodeMethodInvokeExpressionAsAwait(getTestRunnerExpression);

            testClassInitializeMethod.Statements.Add(
                new CodeAssignStatement(
                    testRunnerField,
                    getTestRunnerExpression));

            //FeatureInfo featureInfo = new FeatureInfo("xxxx");
            testClassInitializeMethod.Statements.Add(
                new CodeVariableDeclarationStatement(typeof(FeatureInfo), "featureInfo",
                                                     new CodeObjectCreateExpression(typeof(FeatureInfo),
                                                                                    new CodeObjectCreateExpression(typeof(CultureInfo),
                                                                                                                   new CodePrimitiveExpression(generationContext.Feature.Language)),
                                                                                    new CodePrimitiveExpression(generationContext.Feature.Name),
                                                                                    new CodePrimitiveExpression(generationContext.Feature.Description),
                                                                                    new CodeFieldReferenceExpression(
                                                                                        new CodeTypeReferenceExpression("ProgrammingLanguage"),
                                                                                        _codeDomHelper.TargetLanguage.ToString()),
                                                                                    _scenarioPartHelper.GetStringArrayExpression(generationContext.Feature.Tags))));

            //await testRunner.OnFeatureStartAsync(featureInfo);
            var onFeatureStartExpression = new CodeMethodInvokeExpression(
                testRunnerField,
                nameof(ITestRunner.OnFeatureStartAsync),
                new CodeVariableReferenceExpression("featureInfo"));

            _codeDomHelper.MarkCodeMethodInvokeExpressionAsAwait(onFeatureStartExpression);

            testClassInitializeMethod.Statements.Add(onFeatureStartExpression);
        }
Beispiel #2
0
        private void SetupTestClassInitializeMethod(TestClassGenerationContext generationContext)
        {
            var testClassInitializeMethod = generationContext.TestClassInitializeMethod;

            testClassInitializeMethod.Attributes = MemberAttributes.Public;
            testClassInitializeMethod.Name       = TESTCLASS_INITIALIZE_NAME;

            _testGeneratorProvider.SetTestClassInitializeMethod(generationContext);

            //testRunner = TestRunnerManager.GetTestRunner(); if UnitTestGeneratorTraits.ParallelExecution
            //testRunner = TestRunnerManager.GetTestRunner(null, 0); if not UnitTestGeneratorTraits.ParallelExecution
            var testRunnerField = GetTestRunnerExpression();

            var testRunnerParameters =
                _testGeneratorProvider.GetTraits().HasFlag(UnitTestGeneratorTraits.ParallelExecution)
                    ? new CodeExpression[] { }
                    : new[] { new CodePrimitiveExpression(null), new CodePrimitiveExpression(0) };

            testClassInitializeMethod.Statements.Add(
                new CodeAssignStatement(
                    testRunnerField,
                    new CodeMethodInvokeExpression(
                        new CodeTypeReferenceExpression(typeof(TestRunnerManager)),
                        "GetTestRunner", testRunnerParameters)));

            //FeatureInfo featureInfo = new FeatureInfo("xxxx");
            testClassInitializeMethod.Statements.Add(
                new CodeVariableDeclarationStatement(typeof(FeatureInfo), "featureInfo",
                                                     new CodeObjectCreateExpression(typeof(FeatureInfo),
                                                                                    new CodeObjectCreateExpression(typeof(CultureInfo),
                                                                                                                   new CodePrimitiveExpression(generationContext.Feature.Language)),
                                                                                    new CodePrimitiveExpression(generationContext.Feature.Name),
                                                                                    new CodePrimitiveExpression(generationContext.Feature.Description),
                                                                                    new CodeFieldReferenceExpression(
                                                                                        new CodeTypeReferenceExpression("ProgrammingLanguage"),
                                                                                        _codeDomHelper.TargetLanguage.ToString()),
                                                                                    GetStringArrayExpression(generationContext.Feature.Tags))));

            //testRunner.OnFeatureStart(featureInfo);
            testClassInitializeMethod.Statements.Add(
                new CodeMethodInvokeExpression(
                    testRunnerField,
                    "OnFeatureStart",
                    new CodeVariableReferenceExpression("featureInfo")));
        }
        public void SetupTestClassInitializeMethod()
        {
            var initializeMethod = GenerationContext.TestClassInitializeMethod;

            initializeMethod.Attributes = MemberAttributes.Public;
            initializeMethod.Name       = "FeatureSetup";
            _testGeneratorProvider.SetTestClassInitializeMethod(GenerationContext);
            CodeExpression[] codeExpressionArray1;
            if (!_testGeneratorProvider.GetTraits().HasFlag(UnitTestGeneratorTraits.ParallelExecution))
            {
                codeExpressionArray1 = (new CodePrimitiveExpression[2]
                {
                    new CodePrimitiveExpression(null),
                    new CodePrimitiveExpression(0)
                });
            }
            else
            {
                codeExpressionArray1 = new CodeExpression[0];
            }

            var            codeExpressionArray2 = codeExpressionArray1;
            CodeExpression runnerExpression     = GetTestRunnerExpression();

            initializeMethod.Statements.Add(new CodeAssignStatement(runnerExpression, new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(typeof(TestRunnerManager)), "GetTestRunner", codeExpressionArray2)));
            initializeMethod.Statements.Add(new CodeVariableDeclarationStatement(typeof(FeatureInfo), "featureInfo", new CodeObjectCreateExpression(typeof(FeatureInfo), new CodeExpression[6]
            {
                new CodeObjectCreateExpression(typeof(CultureInfo), new CodeExpression[1]
                {
                    new CodePrimitiveExpression(GenerationContext.Feature.Language)
                }),
                new CodePrimitiveExpression(GenerationContext.Document.DocumentLocation.FeatureFolderPath),
                new CodePrimitiveExpression(GenerationContext.Feature.Name),
                new CodePrimitiveExpression(GenerationContext.Feature.Description),
                new CodeFieldReferenceExpression(new CodeTypeReferenceExpression("ProgrammingLanguage"), _codeDomHelper.TargetLanguage.ToString()),
                GenerationContext.Feature.Tags.GetStringArrayExpression()
            })));
            initializeMethod.Statements.Add(new CodeMethodInvokeExpression(runnerExpression, "OnFeatureStart", new CodeExpression[1]
            {
                new CodeVariableReferenceExpression("featureInfo")
            }));
        }
        private void SetupTestClassInitializeMethod(TestClassGenerationContext generationContext)
        {
            var testClassInitializeMethod = generationContext.TestClassInitializeMethod;

            testClassInitializeMethod.Attributes = MemberAttributes.Public;
            testClassInitializeMethod.Name       = TESTCLASS_INITIALIZE_NAME;

            testGeneratorProvider.SetTestClassInitializeMethod(generationContext);

            //testRunner = TestRunnerManager.GetTestRunner();
            var testRunnerField = GetTestRunnerExpression();
            var methodName      = generationContext.GenerateAsynchTests ? "GetAsyncTestRunner" : "GetTestRunner";

            testClassInitializeMethod.Statements.Add(
                new CodeAssignStatement(
                    testRunnerField,
                    new CodeMethodInvokeExpression(
                        new CodeTypeReferenceExpression(typeof(TestRunnerManager)),
                        methodName)));

            //FeatureInfo featureInfo = new FeatureInfo("xxxx");
            testClassInitializeMethod.Statements.Add(
                new CodeVariableDeclarationStatement(typeof(FeatureInfo), "featureInfo",
                                                     new CodeObjectCreateExpression(typeof(FeatureInfo),
                                                                                    new CodeObjectCreateExpression(typeof(CultureInfo),
                                                                                                                   new CodePrimitiveExpression(generationContext.Feature.Language)),
                                                                                    new CodePrimitiveExpression(generationContext.Feature.Title),
                                                                                    new CodePrimitiveExpression(generationContext.Feature.Description),
                                                                                    new CodeFieldReferenceExpression(
                                                                                        new CodeTypeReferenceExpression("ProgrammingLanguage"),
                                                                                        codeDomHelper.TargetLanguage.ToString()),
                                                                                    GetStringArrayExpression(generationContext.Feature.Tags))));

            //testRunner.OnFeatureStart(featureInfo);
            testClassInitializeMethod.Statements.Add(
                new CodeMethodInvokeExpression(
                    testRunnerField,
                    "OnFeatureStart",
                    new CodeVariableReferenceExpression("featureInfo")));
        }
        public void SetTestClassInitializeMethod(TestClassGenerationContext generationContext)
        {
            _unitTestGeneratorProvider.SetTestClassInitializeMethod(generationContext);

            UpdateAttributes(generationContext.TestClassInitializeMethod);
        }
Beispiel #6
0
 public void SetTestClassInitializeMethod(TestClassGenerationContext generationContext)
 {
     baseGeneratorProvider.SetTestClassInitializeMethod(generationContext);
 }
 public void SetTestClassInitializeMethod(TestClassGenerationContext generationContext)
 {
     _innerGenerator.SetTestClassInitializeMethod(generationContext);
 }