public ChutzpahTestSettingsFile FindSettingsFile(string filePath, ChutzpahSettingsFileEnvironments environments = null) { if (string.IsNullOrEmpty(filePath)) return ChutzpahTestSettingsFile.Default; var directory = Path.GetDirectoryName(filePath); return FindSettingsFileFromDirectory(directory, environments); }
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(); }
public TestOptions() { FileSearchLimit = Constants.DefaultFileSeachLimit; TestFileTimeoutMilliseconds = Constants.DefaultTestFileTimeout; defaultParallelism = Environment.ProcessorCount; MaxDegreeOfParallelism = defaultParallelism; CoverageOptions = new CoverageOptions(); TestExecutionMode = TestExecutionMode.Execution; ChutzpahSettingsFileEnvironments = new ChutzpahSettingsFileEnvironments(); }
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); }
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); }
/// <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 FindSettingsFileFromDirectory(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 bool IsTestFile(string testFile, ChutzpahSettingsFileEnvironments environments) { return testContextBuilder.IsTestFile(testFile, environments); }
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; } }
private void OnSolutionUnloaded(object sender, EventArgs e) { settingsEnvironments = null; }
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()) { environment.Properties.Add(new ChutzpahSettingsFileEnvironmentProperty(prop, buildProject.GetPropertyValue(prop))); } newEnvironments.AddEnvironment(environment); } settingsEnvironments = newEnvironments; }
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; }