protected override void SetTestSemantics(PatternTest test, IMethodInfo method)
        {
            base.SetTestSemantics(test, method);

            test.TestInstanceActions.ExecuteTestInstanceChain.Around(
                delegate(PatternTestInstanceState state, Action <PatternTestInstanceState> action)
            {
                Specify.ThrownBy(delegate { action(state); }).ShouldBeNull();

                bool failed = false;
                foreach (ISpecificationConstraint constraint in Specify.GetConstraints())
                {
                    SpecificationResult result = constraint.Evaluate();
                    if (!result.Success)
                    {
                        failed = true;

                        using (Log.BeginSection(constraint.Description))
                        {
                            Log.Failures.WriteLine(result.Message);

                            if (result.StackTrace != null)
                            {
                                Log.Failures.WriteLine(result.StackTrace);
                            }
                        }
                    }
                }

                if (failed)
                {
                    throw new SilentTestException(TestOutcome.Failed);
                }
            });
        }
        /// <inheritdoc />
        protected override PatternTest CreateTest(PatternEvaluationScope containingScope, IMethodInfo method)
        {
            PatternTest test = base.CreateTest(containingScope, method);

            test.Name = NameSanitizer.MakeNameFromIdentifier(test.Name);
            test.Kind = NBehaveTestKinds.Specification;
            return(test);
        }
        /// <inheritdoc />
        protected override PatternTest CreateTest(PatternEvaluationScope constainingScope, ITypeInfo type)
        {
            PatternTest test = base.CreateTest(constainingScope, type);

            test.Name = NameSanitizer.MakeNameFromIdentifier(test.Name);
            test.Kind = NBehaveTestKinds.Concern;
            return(test);
        }
Exemple #4
0
        private static void SetParallelizableRecursively(PatternTest parent)
        {
            foreach (PatternTest child in parent.Children)
            {
                child.IsParallelizable = true;

                SetParallelizableRecursively(child);
            }
        }