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"); } }