/// <summary> /// Raises the test containers changed event, returns true if the event was delivered /// or would be delivered and there were no listeners. /// </summary> /// <param name="project">The project which the event is being raised for</param> private bool OnTestContainersChanged(IVsProject project) { // https://pytools.codeplex.com/workitem/1271 // When test explorer kicks off a run it kicks off a test discovery // phase, which kicks off a build, which results in us saving files. // If we raise the files changed event then test explorer immediately turns // around and queries us for the changed files. Then it continues // along with the test discovery phase it was already initiating, and // discovers that no changes have occured - because it already updated // to the latest changes when we informed it our containers had changed. // Therefore if we are both building and detecting changes then we // don't want to raise the event, instead it'll query us in a little // bit and get the most recent changes. ProjectInfo projectInfo; string projectPath; if (project != null && project.TryGetProjectPath(out projectPath) && _knownProjects.TryGetValue(projectPath, out projectInfo) && projectInfo != null && projectInfo.HasRequestedContainers) { if (!_building || !_detectingChanges) { TestContainersUpdated?.Invoke(this, EventArgs.Empty); return(true); } } return(false); }
internal bool IsProjectKnown(IVsProject project) { string projectPath; if (project.TryGetProjectPath(out projectPath)) { return(_knownProjects.ContainsKey(projectPath)); } return(false); }
internal bool IsProjectKnown(IVsProject project) { string projectPath; if (project.TryGetProjectPath(out projectPath)) { return _knownProjects.ContainsKey(projectPath); } return false; }
/// <summary> /// Raises the test containers changed event, returns true if the event was delivered /// or would be delivered and there were no listeners. /// </summary> /// <param name="project">The project which the event is being raised for</param> private bool OnTestContainersChanged(IVsProject project) { // https://pytools.codeplex.com/workitem/1271 // When test explorer kicks off a run it kicks off a test discovery // phase, which kicks off a build, which results in us saving files. // If we raise the files changed event then test explorer immediately turns // around and queries us for the changed files. Then it continues // along with the test discovery phase it was already initiating, and // discovers that no changes have occured - because it already updated // to the latest changes when we informed it our containers had changed. // Therefore if we are both building and detecting changes then we // don't want to raise the event, instead it'll query us in a little // bit and get the most recent changes. ProjectInfo projectInfo; string projectPath; if (project != null && project.TryGetProjectPath(out projectPath) && _knownProjects.TryGetValue(projectPath, out projectInfo) && projectInfo.HasRequestedContainers) { if (!_building || !_detectingChanges) { var evt = TestContainersUpdated; if (evt != null) { evt(this, EventArgs.Empty); } return true; } } return false; }