Example #1
0
        public void Execute(InstanceExecution instanceExecution)
        {
            foreach (var caseExecution in instanceExecution.CaseExecutions)
            {

                using (var console = new RedirectedConsole())
                {
                    var stopwatch = new Stopwatch();
                    stopwatch.Start();

                    try
                    {
                        var executionPlan = instanceExecution.ExecutionPlan;
                        var instance = instanceExecution.Instance;
                        executionPlan.Execute(caseExecution, instance);
                    }
                    catch (Exception exception)
                    {
                        caseExecution.Fail(exception);
                    }

                    stopwatch.Stop();

                    caseExecution.Duration = stopwatch.Elapsed;
                    caseExecution.Output = console.Output;
                }

                Console.Write(caseExecution.Output);
            }
        }
 public void Execute(InstanceExecution instanceExecution)
 {
     try
     {
         outer(instanceExecution, () => inner.Execute(instanceExecution));
     }
     catch (Exception exception)
     {
         instanceExecution.FailCases(exception);
     }
 }
        public CustomConvention()
        {
            Classes
            .Where(x => factMethods.Filter(x).Any());

            Cases = new MethodFilter()
                    .HasOrInherits <FactAttribute>();

            ClassExecution
            .CreateInstancePerCase()
            .SetUpTearDown(PrepareFixtureData, DisposeFixtureData);

            InstanceExecution
            .SetUpTearDown(InjectFixtureData, fixture => { });
        }
Example #4
0
        public CustomConvention()
        {
            Classes
            .Where(HasAnyFactMethods);

            Methods
            .HasOrInherits <FactAttribute>();

            ClassExecution
            .CreateInstancePerCase()
            .SetUpTearDown(PrepareFixtureData, DisposeFixtureData)
            .ShuffleCases();

            InstanceExecution
            .SetUp(InjectFixtureData);
        }
        public void Execute(ClassExecution classExecution)
        {
            try
            {
                var instance = construct(classExecution.TestClass);

                var executionPlan = classExecution.ExecutionPlan;
                var instanceExecution = new InstanceExecution(executionPlan, classExecution.TestClass, instance, classExecution.CaseExecutions);
                executionPlan.Execute(instanceExecution);

                Dispose(instance);
            }
            catch (Exception exception)
            {
                classExecution.FailCases(exception);
            }
        }
        public CustomConvention()
        {
            Classes.Where(x => x.GetFields(fieldFlags).Any(fieldInfo => fieldInfo.FieldType == typeof(given)));

            Cases = new CustomCaseFilter().SetFilterMethod(x => x.GetFields(fieldFlags).Where(fieldInfo => fieldInfo.FieldType == typeof(then)));

            ClassExecution
            .CreateInstancePerTestClass();

            InstanceExecution
            .SetUpTearDown(fixture =>
            {
                InvokeFieldsOfType(typeof(given), fixture.TestClass, fixture.Instance);
                InvokeFieldsOfType(typeof(when), fixture.TestClass, fixture.Instance);
            },
                           fixture => InvokeFieldsOfType(typeof(after), fixture.TestClass, fixture.Instance));
        }
        public CustomConvention()
        {
            Classes
            .HasOrInherits <TestFixtureAttribute>();

            Cases = new MethodFilter()
                    .HasOrInherits <TestAttribute>();

            ClassExecution
            .CreateInstancePerTestClass();

            InstanceExecution
            .SetUpTearDown <TestFixtureSetUpAttribute, TestFixtureTearDownAttribute>();

            CaseExecution
            .SetUpTearDown <SetUpAttribute, TearDownAttribute>();
        }
Example #8
0
        public CustomConvention()
        {
            Classes
            .HasOrInherits <TestFixtureAttribute>();

            Methods
            .HasOrInherits <TestAttribute>();

            ClassExecution
            .CreateInstancePerTestClass()
            .SortCases((caseA, caseB) => String.Compare(caseA.Name, caseB.Name, StringComparison.Ordinal));

            InstanceExecution
            .SetUpTearDown <TestFixtureSetUpAttribute, TestFixtureTearDownAttribute>();

            CaseExecution
            .SetUpTearDown <SetUpAttribute, TearDownAttribute>();
        }
Example #9
0
        public void ShouldPerformCaseExecutionBehaviorForAllGivenCases()
        {
            var caseA = new Case(testClass.GetInstanceMethod("Pass"));
            var caseB = new Case(testClass.GetInstanceMethod("Fail"));

            var caseExecutions = new[]
            {
                new CaseExecution(caseA),
                new CaseExecution(caseB)
            };

            var executeCases = new ExecuteCases();
            var executionPlan = new ExecutionPlan(convention);
            var instanceExecution = new InstanceExecution(executionPlan, testClass, new SampleTestClass(), caseExecutions);
            executeCases.Execute(instanceExecution);

            caseExecutions[0].Exceptions.Any().ShouldBeFalse();
            caseExecutions[1].Exceptions.Single().Message.ShouldEqual("'Fail' failed!");
            log.ShouldEqual("Pass", "Fail");
        }
        public CustomConvention()
        {
            Classes
                .Where(type => type.IsInNamespace(GetType().Namespace))
                .NameEndsWith("Tests");

            Cases = new MethodFilter()
                .Where(method => method.Void())
                .Where(method => LifecycleMethods.All(x => x != method.Name))
                .ZeroParameters();

            ClassExecution
                .CreateInstancePerTestClass();

            InstanceExecution
                .SetUpTearDown("FixtureSetUp", "FixtureTearDown");

            CaseExecution
                .SetUpTearDown("SetUp", "TearDown");
        }
Example #11
0
        public CustomConvention()
        {
            Classes
            .Where(type => type.IsInNamespace(GetType().Namespace))
            .NameEndsWith("Tests");

            Methods
            .Where(method => method.IsVoid())
            .Where(method => LifecycleMethods.All(x => x != method.Name));

            ClassExecution
            .CreateInstancePerTestClass()
            .SortCases((caseA, caseB) => String.Compare(caseA.Name, caseB.Name, StringComparison.Ordinal));

            InstanceExecution
            .SetUpTearDown("FixtureSetUp", "FixtureTearDown");

            CaseExecution
            .SetUpTearDown("SetUp", "TearDown");
        }
Example #12
0
 void InjectFixtureData(InstanceExecution instanceExecution)
 {
     foreach (var injectionMethod in fixtures.Keys)
         injectionMethod.Invoke(instanceExecution.Instance, new[] { fixtures[injectionMethod] });
 }
Example #13
0
 protected static void InstanceTearDown(InstanceExecution instanceExecution)
 {
     instanceExecution.TestClass.ShouldEqual(typeof(SampleTestClass));
     WhereAmI();
 }