private void InitializeSettingsFileEnvironments() { var newEnvironments = new ChutzpahSettingsFileEnvironments(); var buildProjects = ProjectCollection.GlobalProjectCollection.LoadedProjects .Where(x => !x.FullPath.Equals(".user", StringComparison.OrdinalIgnoreCase)); foreach (var buildProject in buildProjects) { var dirPath = buildProject.DirectoryPath; var environment = new ChutzpahSettingsFileEnvironment(dirPath); foreach (var prop in ChutzpahMsBuildProps.GetProps()) { var value = buildProject.GetPropertyValue(prop); if (!string.IsNullOrEmpty(value)) { environment.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty(prop, value)); } } if (environment.Properties.Any()) { newEnvironments.AddEnvironment(environment); } } settingsEnvironments = newEnvironments; }
/// <summary> /// Find and reads a chutzpah test settings file given a direcotry. If none is found a default settings object is created /// </summary> /// <param name="directory"></param> /// <returns></returns> /// public ChutzpahTestSettingsFile FindSettingsFile(string directory, ChutzpahSettingsFileEnvironments environments = null) { if (string.IsNullOrEmpty(directory)) { return(ChutzpahTestSettingsFile.Default); } directory = directory.TrimEnd('/', '\\'); ChutzpahTestSettingsFile settings; if (!ChutzpahSettingsFileCache.TryGetValue(directory, out settings)) { ChutzpahSettingsFileEnvironment environment = null; if (environments != null) { environment = environments.GetSettingsFileEnvironment(directory); } return(FindSettingsFile(directory, environment).InheritFromDefault()); } else { return(settings); } }
public TestOptions() { FileSearchLimit = Constants.DefaultFileSeachLimit; TestFileTimeoutMilliseconds = Constants.DefaultTestFileTimeout; MaxDegreeOfParallelism = Environment.ProcessorCount; CoverageOptions = new CoverageOptions(); TestExecutionMode = TestExecutionMode.Execution; ChutzpahSettingsFileEnvironments = new ChutzpahSettingsFileEnvironments(); }
public ChutzpahTestSettingsFile FindSettingsFile(string filePath, ChutzpahSettingsFileEnvironments environments = null) { if (string.IsNullOrEmpty(filePath)) { return(ChutzpahTestSettingsFile.Default); } var directory = Path.GetDirectoryName(filePath); return(FindSettingsFileFromDirectory(directory, environments)); }
public void Will_normalize_slashes_and_casing() { var environment = new ChutzpahSettingsFileEnvironment("path"); environment.Path = @"C:/Some/path"; environment.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty("name1", "val1")); var environmentsWrapper = new ChutzpahSettingsFileEnvironments(new[] { environment }); var matched = environmentsWrapper.GetSettingsFileEnvironment(@"c:\some\path\chutzpah.json"); Assert.Equal(environment, matched); }
public void Will_match_environment_given_chutzpah_json_path() { var environment = new ChutzpahSettingsFileEnvironment("path"); environment.Path = @"C:\some\path"; environment.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty("name1", "val1")); var environmentsWrapper = new ChutzpahSettingsFileEnvironments(new[] { environment }); var matched = environmentsWrapper.GetSettingsFileEnvironment(@"c:\some\path\chutzpah.json"); Assert.Equal(environment, matched); }
protected CommandLine(string[] args) { for (var i = args.Length - 1; i >= 0; i--) { arguments.Push(args[i]); } UnmatchedArguments = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); Files = new List <string>(); SettingsFileEnvironments = new ChutzpahSettingsFileEnvironments(); TeamCity = Environment.GetEnvironmentVariable(TeamcityProjectName) != null; Parse(); }
protected CommandLine(string[] args, IEnumerable <string> transformerNames) { for (var i = args.Length - 1; i >= 0; i--) { arguments.Push(args[i]); } this.transformerNames = new HashSet <string>(transformerNames); TransformersRequested = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); Files = new List <string>(); SettingsFileEnvironments = new ChutzpahSettingsFileEnvironments(); TeamCity = Environment.GetEnvironmentVariable(TeamcityProjectName) != null; Parse(); }
public bool IsTestFile(string file, ChutzpahSettingsFileEnvironments environments = null) { ChutzpahTracer.TraceInformation("Determining if {0} might be a test file", file); if (string.IsNullOrWhiteSpace(file)) { return(false); } var testFilePath = fileProbe.FindFilePath(file); if (testFilePath == null) { ChutzpahTracer.TraceInformation("Rejecting '{0}' since either it doesnt exist", file); return(false); } var chutzpahTestSettings = settingsService.FindSettingsFile(testFilePath, environments); if (!IsTestPathIncluded(testFilePath, chutzpahTestSettings)) { ChutzpahTracer.TraceInformation("Excluded test file '{0}' given chutzpah.json settings", testFilePath); return(false); } // If the framework or tests filters are set in the settings file then no need to check for // test framework if (!string.IsNullOrEmpty(chutzpahTestSettings.Framework) || chutzpahTestSettings.Tests.Any()) { return(true); } else { string testFileText = fileSystem.GetText(testFilePath); IFrameworkDefinition definition; var info = new PathInfo { Path = file, FullPath = testFilePath, Type = FileProbe.GetFilePathType(testFilePath) }; var frameworkDetetected = TryDetectFramework(info, chutzpahTestSettings, out definition); if (frameworkDetetected) { ChutzpahTracer.TraceInformation("Assuming '{0}' is a test file", file); } return(frameworkDetetected); } }
public void Will_choose_longest_matching_path() { var environment1 = new ChutzpahSettingsFileEnvironment("path"); environment1.Path = @"C:\some\"; environment1.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty("name1", "val1")); var environment2 = new ChutzpahSettingsFileEnvironment("path"); environment2.Path = @"C:\some\path\"; environment2.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty("name2", "val2")); var environmentsWrapper = new ChutzpahSettingsFileEnvironments(new[] { environment1, environment2 }); var matched = environmentsWrapper.GetSettingsFileEnvironment(@"c:\some\path\chutzpah.json"); Assert.Equal(environment2, matched); }
public bool IsTestFile(string file, ChutzpahSettingsFileEnvironments environments = null) { ChutzpahTracer.TraceInformation("Determining if '{0}' might be a test file", file); if (string.IsNullOrWhiteSpace(file)) { return(false); } PathInfo pathInfo = fileProbe.GetPathInfo(file); PathType testFileKind = pathInfo.Type; string testFilePath = pathInfo.FullPath; if (testFilePath == null || !IsValidTestPathType(testFileKind)) { ChutzpahTracer.TraceInformation("Rejecting '{0}' since either it doesnt exist or does not have test extension", file); return(false); } var testFileDirectory = Path.GetDirectoryName(testFilePath); var chutzpahTestSettings = settingsService.FindSettingsFile(testFileDirectory, environments); if (!IsTestPathIncluded(testFilePath, chutzpahTestSettings)) { ChutzpahTracer.TraceInformation("Excluded test file '{0}' given chutzpah.json settings", testFilePath); return(false); } string testFileText = fileSystem.GetText(testFilePath); IFrameworkDefinition definition; var frameworkDetetected = TryDetectFramework(testFileText, testFileKind, chutzpahTestSettings, out definition); if (frameworkDetetected) { ChutzpahTracer.TraceInformation("Assuming '{0}' is a test file", file); } return(frameworkDetetected); }
public bool IsTestFile(string testFile, ChutzpahSettingsFileEnvironments environments) { return(testContextBuilder.IsTestFile(testFile, environments)); }
private void OnSolutionUnloaded(object sender, EventArgs e) { settingsEnvironments = null; }