public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            listener.TestStarted(TestName);

            var source = new EmbeddedResourceSource(m_FixtureType.Assembly);
            var target = new FileTarget(new SpecificationConfig().Load(m_FixtureType).BaseOutputDirectory);
            var concordion = new ConcordionBuilder().WithSource(source).WithTarget(target).Build();

            Fixture = Reflect.Construct(m_FixtureType);
            var concordionResult = concordion.Process(Fixture);
            var testResult = NUnitTestResult(concordionResult);

            listener.TestFinished(testResult);

            return testResult;
        }
 private static TestResult RunTestFixture(ITestCommand testCommand, ConcordionTest concordionTest, TestStep parentTestStep)
 {
    ITestContext testContext = testCommand.StartPrimaryChildStep(parentTestStep);
     
     // The magic happens here!
     var concordion = new ConcordionBuilder()
                             .WithSource(concordionTest.Source)
                             .WithTarget(concordionTest.Target)
                             .WithSpecificationListener(new GallioResultRenderer())
                             .Build();
     concordionTest.ProcessGroupStart();
     ConstructorInfo constructor = concordionTest.FixtureType.GetConstructor(Type.EmptyTypes);
     var fixture=constructor.Invoke(new object[]{});
     var summary = concordion.Process(concordionTest.Resource, fixture);
     bool passed = !(summary.HasFailures || summary.HasExceptions);
     concordionTest.ProcessGroupEnd();
     testContext.AddAssertCount((int)summary.SuccessCount + (int)summary.FailureCount);
     return testContext.FinishStep(passed ? TestOutcome.Passed : TestOutcome.Failed, null);
 }
示例#3
0
        public ProcessingResult Process(Resource resource)
        {
            var eventRecorder = new EventRecorder();
            var stubTarget = new StubTarget();

            var concordion = new ConcordionBuilder()
                .WithAssertEqualsListener(eventRecorder)
                .WithExceptionListener(eventRecorder)
                .WithSource(Source)
                .WithEvaluatorFactory(EvaluatorFactory)
                .WithTarget(stubTarget)
                .Build();

            try
            {
                IResultSummary resultSummary = concordion.Process(resource, Fixture);
                string xml = stubTarget.GetWrittenString(resource);
                return new ProcessingResult(resultSummary, eventRecorder, xml);
            }
            catch (Exception e)
            {
                throw new Exception("Test rig failed to process specification", e);
            }
        }