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;
            }
        }
Example #2
0
 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)
 {
 }
 public KarmaTestContainer(TestContainerList containers, IVsProject project, string source)
     : base(containers, project, source)
 {
 }