public void RunTests(IEnumerable <string> sources, IRunContext runContext, IFrameworkHandle frameworkHandle) { ValidateArg.NotNull(sources, "sources"); ValidateArg.NotNull(runContext, "runContext"); ValidateArg.NotNull(frameworkHandle, "frameworkHandle"); _cancelRequested.Reset(); var executorUri = new Uri(PythonConstants.TestExecutorUriString); var tests = new List <TestCase>(); var doc = new XPathDocument(new StringReader(runContext.RunSettings.SettingsXml)); foreach (var t in TestReader.ReadTests(doc, new HashSet <string>(sources, StringComparer.OrdinalIgnoreCase), m => { frameworkHandle?.SendMessage(TestMessageLevel.Warning, m); })) { tests.Add(new TestCase(t.FullyQualifiedName, executorUri, t.SourceFile) { DisplayName = t.DisplayName, LineNumber = t.LineNo, CodeFilePath = t.SourceFile }); } if (_cancelRequested.WaitOne(0)) { return; } RunTestCases(tests, runContext, frameworkHandle); }
public void RunTests(IEnumerable<string> sources, IRunContext runContext, IFrameworkHandle frameworkHandle) { if (sources == null) { throw new ArgumentNullException(nameof(sources)); } if (runContext == null) { throw new ArgumentNullException(nameof(runContext)); } if (frameworkHandle == null) { throw new ArgumentNullException(nameof(frameworkHandle)); } _cancelRequested.Reset(); var executorUri = new Uri(PythonConstants.TestExecutorUriString); var tests = new List<TestCase>(); var doc = Read(runContext.RunSettings.SettingsXml); foreach (var t in TestReader.ReadTests(doc, new HashSet<string>(sources, StringComparer.OrdinalIgnoreCase), m => { frameworkHandle?.SendMessage(TestMessageLevel.Warning, m); })) { tests.Add(new TestCase(t.FullyQualifiedName, executorUri, t.SourceFile) { DisplayName = t.DisplayName, LineNumber = t.LineNo, CodeFilePath = t.SourceFile }); } if (_cancelRequested.WaitOne(0)) { return; } RunTestCases(tests, runContext, frameworkHandle); }
static void DiscoverTests(IEnumerable <string> sources, IMessageLogger logger, ITestCaseDiscoverySink discoverySink, IRunSettings settings) { var sourcesSet = new HashSet <string>(sources, StringComparer.OrdinalIgnoreCase); var executorUri = new Uri(PythonConstants.TestExecutorUriString); // Test list is sent to us via our run settings which we use to smuggle the // data we have in our analysis process. var doc = Read(settings.SettingsXml); foreach (var t in TestReader.ReadTests(doc, sourcesSet, m => { logger?.SendMessage(TestMessageLevel.Warning, m); })) { var tc = new TestCase(t.FullyQualifiedName, executorUri, t.SourceFile) { DisplayName = t.DisplayName, LineNumber = t.LineNo, CodeFilePath = t.FileName }; discoverySink.SendTestCase(tc); } }