protected TestContainerDiscoverer( IServiceProvider serviceProvider, ITestsService testsService, TestSettingsProvider testSettingsProvider, ITestLogger logger ) { Logger = logger; try { TestSettingsProvider = testSettingsProvider; TestAdapterInfo = CreateTestAdapterInfo(); Containers = new TestContainerList(this); ServiceProvider = serviceProvider; _testsService = testsService; SolutionListener = new SolutionListener(serviceProvider); SolutionListener.SolutionLoaded += OnSolutionLoaded; SolutionListener.SolutionUnloaded += OnSolutionUnloaded; SolutionListener.ProjectChanged += OnSolutionProjectChanged; SolutionListener.StartListening(); ProjectListener = new ProjectListener(serviceProvider, Logger); ProjectListener.FileAdded += (source, e) => OnProjectFileAdded(e.Project, e.File); ProjectListener.FileRemoved += (source, e) => OnProjectFileRemoved(e.Project, e.File); ProjectListener.FileRenamed += (source, e) => OnProjectFileRenamed(e.Project, e.OldFile, e.NewFile); ProjectListener.StartListening(); RunScheduler = new Scheduler(250, RunTestsInternal); RefreshTestContainersScheduler = new Scheduler<string>(250, RefreshTestContainersInternal); Logger.Debug("TestContainerDiscoverer created"); } catch (Exception ex) { Logger.Error(ex); throw; } }
public TestContainer(TestContainerList containers, IVsProject project, string source) : base(containers.Discoverer, source) { Project = project; ProjectDirectory = project.GetProjectDir(); BaseDirectory = Discoverer.BaseDirectory; Name = string.Join("/", new[] { Project.GetProjectName(), Path.GetDirectoryName(GetRelativePath(Source)).Replace('\\', '/') }.Where(s => !string.IsNullOrWhiteSpace(s))); Logger = new TestLogger(Discoverer.Logger, Name); ServerLogger = CreateServerLogger(); Logger.Debug("Creating TestContainer for {0}", GetRelativePath(Source)); Containers = containers; SourceSettings = Discoverer.TestSettings.AddSource(Name, Source); try { Init(); } catch (Exception ex) { Validate(false, "Error: " + ex.Message); Logger.Error(ex, "Could not load tests"); } FileWatchers = GetFileWatchers().Where(f => f != null).ToList(); if (IsValid) { SourceSettingsPersister.Save(Discoverer.TestAdapterInfo.SettingsFileDirectory, SourceSettings); StartTestServer(); } if (!IsValid) { Logger.Warn(InvalidReason); } else { Logger.Debug("TestContainer created"); } }
public KarmaTestContainer(TestContainerList containers, IVsProject project, string source) : base(containers, project, source) { }