protected virtual TestCase CreateTestCase(TestSourceSettings settings, Spec spec) { var testCase = new TestCase(spec.FullyQualifiedName, TestAdapterInfo.ExecutorUri, settings.Source); testCase.DisplayName = spec.DisplayName; if (spec.Traits != null) { foreach (var trait in spec.Traits) { if (!string.IsNullOrWhiteSpace(trait.Name)) { testCase.Traits.Add(trait.Name, trait.Value); } } } if (spec.Source != null) { testCase.CodeFilePath = spec.Source.FileName; if (spec.Source.LineNumber.HasValue) { testCase.LineNumber = spec.Source.LineNumber.Value; } } return testCase; }
private void RunTest(TestSourceSettings settings, ITestLogger logger, IRunContext runContext, IFrameworkHandle frameworkHandle, Spec spec) { var testCase = CreateTestCase(settings, spec); var outcome = TestOutcome.None; frameworkHandle.RecordStart(testCase); foreach (var result in spec.Results) { if (result.Skipped && outcome != TestOutcome.Failed) { outcome = TestOutcome.Skipped; } if (result.Success && outcome == TestOutcome.None) { outcome = TestOutcome.Passed; } if (!result.Success && !result.Skipped) { outcome = TestOutcome.Failed; } frameworkHandle.RecordResult(GetResult(testCase, result, frameworkHandle)); } frameworkHandle.RecordEnd(testCase, outcome); }