private void CreateTestCase(TestData testData, ITestCaseDiscoverySink discoverySink, TestFrameworkLogger logger) { TestCase testCase = GetTestCase(testData); testCase.CodeFilePath = testData.CodeLocation.Path; testCase.LineNumber = testData.CodeLocation.Line; logger.Log(LogSeverity.Info, "Sending to the sink"); discoverySink.SendTestCase(testCase); }
public void DiscoverTests(IEnumerable <string> sources, ObjectModel.Logging.IMessageLogger logger, ITestCaseDiscoverySink discoverySink) { var frameworkLogger = new TestFrameworkLogger(logger); try { frameworkLogger.Log(LogSeverity.Info, "Gallio starting up"); var diaMap = new Dictionary <string, DiaSession>(); var gallioTestscases = GetGallioTestcases(frameworkLogger, sources); if (gallioTestscases != null) { frameworkLogger.Log(LogSeverity.Info, "Found " + gallioTestscases.Count().ToString()); MapGallioTestCases(gallioTestscases, frameworkLogger, discoverySink); } } catch (Exception ex) { frameworkLogger.Log(LogSeverity.Error, String.Format("Gallio: Exception discovering tests from {0}", ex)); } }
private IEnumerable <TestData> GetGallioTestcases(TestFrameworkLogger frameworkLogger, IEnumerable <string> sources) { try { var testFrameworkManager = RuntimeAccessor.ServiceLocator.Resolve <ITestFrameworkManager>(); var loader = new ReflectionOnlyAssemblyLoader(); IList <ICodeElementInfo> assemblyInfos = sources.Select(source => LoadAssembly(source, loader)).Where(assembly => assembly != null).ToList(); var testFrameworkSelector = new TestFrameworkSelector() { Filter = testFrameworkHandle => testFrameworkHandle.Id != "MSTestAdapter.TestFramework" || testFrameworkHandle.Id != "NUnitAdapter.TestFramework", FallbackMode = TestFrameworkFallbackMode.Approximate }; ITestDriver driver = testFrameworkManager.GetTestDriver(testFrameworkSelector, frameworkLogger); var testExplorationOptions = new TestExplorationOptions(); var tests = new List <TestData>(); MessageConsumer messageConsumer = new MessageConsumer() .Handle <TestDiscoveredMessage>(message => { if (message.Test.IsTestCase) { tests.Add((message.Test)); } }) .Handle <AnnotationDiscoveredMessage>(message => message.Annotation.Log(frameworkLogger, true)); driver.Describe(loader.ReflectionPolicy, assemblyInfos, testExplorationOptions, messageConsumer, NullProgressMonitor.CreateInstance()); bool reset = ResetCollectionForExposedTests(tests); if (reset) { tests = null; } return(tests); } catch (Exception ex) { frameworkLogger.Log(LogSeverity.Error, "Gallio failed to load tests", ex); return(null); } }