/// <summary> /// Handler to react to project load/unload events. /// </summary> private void OnSolutionProjectChanged(object sender, SolutionEventsListenerEventArgs e) { if (e != null) { string projectPath = VsSolutionHelper.GetProjectPath(e.Project); var files = FindPotentialTestFiles(e.Project); if (e.ChangedReason == SolutionChangedReason.Load) { ChutzpahTracer.TraceInformation("Project Loaded: '{0}'", projectPath); UpdateChutzpahEnvironmentForProject(projectPath); UpdateTestContainersAndFileWatchers(files, true); } else if (e.ChangedReason == SolutionChangedReason.Unload) { ChutzpahTracer.TraceInformation("Project Unloaded: '{0}'", projectPath); RemoveChutzpahEnvironmentForProject(projectPath); UpdateTestContainersAndFileWatchers(files, false); } } // Do not fire OnTestContainersChanged here. // This will cause us to fire this event too early before the UTE is ready to process containers and will result in an exception. // The UTE will query all the TestContainerDiscoverers once the solution is loaded. }
private IEnumerable <string> FindPs1Files(IVsProject project) { _logger.Log(MessageLevel.Diagnostic, "PowerShellTestContainerDiscoverer:OnTestContainersChanged - FindPs1Files"); return(from item in VsSolutionHelper.GetProjectItems(project) where IsTestFile(item) select item); }
private IEnumerable <TestFileCandidate> FindPotentialTestFiles(IVsProject project) { string projectPath = VsSolutionHelper.GetProjectPath(project); try { ChutzpahTracer.TraceInformation("Begin selecting potential test files from project '{0}'", projectPath); return((from item in VsSolutionHelper.GetProjectItems(project) let hasTestExtension = HasTestFileExtension(item) let isChutzpahSettingsFile = fileProbe.IsChutzpahSettingsFile(item) where !fileProbe.IsTemporaryChutzpahFile(item) && (hasTestExtension || isChutzpahSettingsFile) select new TestFileCandidate { Path = item }).ToList()); } finally { ChutzpahTracer.TraceInformation("End selecting potential test files from project '{0}'", projectPath); } }
private IEnumerable <string> FindPs1Files(IVsProject project) { return(from item in VsSolutionHelper.GetProjectItems(project) where IsTestFile(item) select item); }
private IEnumerable <string> GetTestFiles(IVsProject project) { return(VsSolutionHelper.GetProjectItems(project).Where(o => IsTestFile(o))); }