List <string> GetProjectsToBeSkiped() { string notSupportedErrorFormat = @"Unable to execute skipping tests on following directory '{0}'"; List <string> ScopedProjects = new List <string>(); // We will not skip broad build scope (e.g. sdk), the idea is to not to skip all the tests in a broader build scope. if (BuildScope.Equals("sdk", StringComparison.OrdinalIgnoreCase)) { TaskLogger.LogException <NotSupportedException>(notSupportedErrorFormat, BuildScope); } else if (BuildScopes.Equals("sdk", StringComparison.OrdinalIgnoreCase)) { TaskLogger.LogException <NotSupportedException>(notSupportedErrorFormat, BuildScope); } else { string sdkRootDirPath = Path.Combine(RepositoryRootDirPath, "sdk"); CategorizeSDKProjectsTask catProj = new CategorizeSDKProjectsTask(RepositoryRootDirPath, BuildScope, null, ProjectType, ProjectCategory); catProj.BuildScopes = BuildScopes; catProj.Execute(); if (catProj.MultipleScopes.Contains("sdk")) { TaskLogger.LogException <NotSupportedException>(notSupportedErrorFormat, sdkRootDirPath); } else { var sdkProj = catProj.SDK_Projects.Select <SDKMSBTaskItem, string>((item) => item.ItemSpec); var testProj = catProj.Test_Projects.Select <SDKMSBTaskItem, string>((item) => item.ItemSpec); if (sdkProj.NotNullOrAny <string>()) { ScopedProjects.AddRange(sdkProj.ToList <string>()); } if (testProj.NotNullOrAny <string>()) { ScopedProjects.AddRange(testProj.ToList <string>()); } } } return(ScopedProjects); }