public void DoesNotRunCategoryThatIsExcluded() { var setupData = new RunnerSetupData { WorkingDirectory = workingDir, DryRun = true, Results = Path.GetTempFileName(), Continuous = false, IsTesting = true, ExcludedCategory = "Failure" }; var runner = new TestRunner(setupData); runner.SetupTests(); Assert.AreEqual(runner.GetRunnableTests().Count(), 3); }
public static IRunnerSetupData ParseCommandLineArguments(IEnumerable<string> args) { var showHelp = false; var setupData = new RunnerSetupData(); var p = new OptionSet() { {"dir=","The path to the working directory.", v=> setupData.WorkingDirectory = Path.GetFullPath(v)}, {"a=|assembly=", "The path to the test assembly.", v => setupData.TestAssembly = Path.GetFullPath(v)}, {"r=|results=", "The path to the results file.", v=>setupData.Results = Path.GetFullPath(v)}, {"f:|fixture:", "The full name (with namespace) of the test fixture.", v => setupData.Fixture = v}, {"t:|testName:", "The name of a test to run", v => setupData.Test = v}, {"category:", "The name of a test category to run.", v=> setupData.Category = v}, {"exclude:", "The name of a test category to exclude.", v=> setupData.ExcludedCategory = v}, {"c|concatenate", "Concatenate results with existing results file.", v=> setupData.Concat = v != null}, {"revit:", "The path to Revit.", v=> setupData.RevitPath = v}, {"copyAddins", "Specify whether to copy the addins from the Revit folder to the current working directory", v=> setupData.CopyAddins = v != null}, {"dry", "Conduct a dry run.", v=> setupData.DryRun = v != null}, {"x|clean", "Cleanup journal files after test completion", v=> setupData.CleanUp = v != null}, {"continuous", "Run all selected tests in one Revit session.", v=> setupData.Continuous = v != null}, {"d|debug", "Run in debug mode.", v=>setupData.IsDebug = v != null}, {"h|help", "Show this message and exit.", v=> showHelp = v != null} }; var notParsed = new List<string>(); const string helpMessage = "Try 'DynamoTestFrameworkRunner --help' for more information."; try { notParsed = p.Parse(args); } catch (OptionException e) { string message = e.Message + "\n" + helpMessage; throw new Exception(message); } if (notParsed.Count > 0) { throw new ArgumentException(String.Join(" ", notParsed.ToArray())); } if (string.IsNullOrEmpty(setupData.WorkingDirectory)) { throw new Exception("You must specify a working directory."); } if (string.IsNullOrEmpty(setupData.TestAssembly)) { throw new Exception("You must specify a test assembly."); } if (string.IsNullOrEmpty(setupData.Results)) { throw new Exception("You must specify a results file."); } if (showHelp) { ShowHelp(p); throw new Exception(); } return setupData; }
public void CanConstructDefaultRunner() { var setupData = new RunnerSetupData(); Assert.DoesNotThrow(()=>new TestRunner(setupData)); }
private IRunnerSetupData TestSetupData() { var setupData = new RunnerSetupData { WorkingDirectory = workingDir, DryRun = true, Results = Path.GetTempFileName(), Continuous = false, IsTesting = true }; return setupData; }
public void RunTwoSelectedCategories() { var setupData = new RunnerSetupData { WorkingDirectory = workingDir, DryRun = true, Results = Path.GetTempFileName(), Continuous = false, IsTesting = true, }; var runner = new TestRunner(setupData); var assData = runner.Assemblies.First(); assData.ShouldRun = false; var catData1 = runner.Assemblies.SelectMany(a => a.Categories).First(c => c.Name == "Smoke"); ((IExcludable)catData1).ShouldRun = true; var catData2 = runner.Assemblies.SelectMany(a => a.Categories).First(c => c.Name == "Integration"); ((IExcludable)catData2).ShouldRun = true; runner.SetupTests(); Assert.AreEqual(runner.GetRunnableTests().Count(), 3); }
public void RunsTestIfSpecifiedInParameters() { var setupData = new RunnerSetupData { WorkingDirectory = workingDir, DryRun = true, Results = Path.GetTempFileName(), Continuous = false, IsTesting = true, Test = "TestA" }; var runner = new TestRunner(setupData); runner.SetupTests(); Assert.AreEqual(runner.GetRunnableTests().Count(), 1); }
internal RunnerViewModel(IContext context) { this.context = context; var setupData = new RunnerSetupData { WorkingDirectory = !String.IsNullOrEmpty(Settings.Default.workingDirectory) && Directory.Exists(Settings.Default.workingDirectory) ? Settings.Default.workingDirectory : Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), TestAssembly = !String.IsNullOrEmpty(Settings.Default.assemblyPath) && File.Exists(Settings.Default.assemblyPath) ? Settings.Default.assemblyPath : null, Results = !String.IsNullOrEmpty(Settings.Default.resultsPath) ? Settings.Default.resultsPath : null, Timeout = Settings.Default.timeout, IsDebug = Settings.Default.isDebug, }; runner = new Runner(setupData); if (Settings.Default.selectedProduct > runner.Products.Count - 1) { SelectedProductIndex = -1; } else { SelectedProductIndex = Settings.Default.selectedProduct; } SetAssemblyPathCommand = new DelegateCommand(SetAssemblyPath, CanSetAssemblyPath); SetResultsPathCommand = new DelegateCommand(SetResultsPath, CanSetResultsPath); SetWorkingPathCommand = new DelegateCommand(SetWorkingPath, CanSetWorkingPath); RunCommand = new DelegateCommand<object>(Run, CanRun); SaveSettingsCommand = new DelegateCommand(SaveSettings, CanSaveSettings); CleanupCommand = new DelegateCommand(runner.Cleanup, CanCleanup); CancelCommand = new DelegateCommand(Cancel, CanCancel); UpdateSummaryCommand = new DelegateCommand(UpdateSummary, CanUpdateSummary); runner.Products.CollectionChanged += Products_CollectionChanged; runner.TestComplete += runner_TestComplete; runner.TestFailed += runner_TestFailed; runner.TestTimedOut += runner_TestTimedOut; watcher = new FileSystemWatcher { Path = Path.GetDirectoryName(AssemblyPath), NotifyFilter = NotifyFilters.LastWrite, Filter = Path.GetFileName(AssemblyPath) }; watcher.Changed += watcher_Changed; watcher.EnableRaisingEvents = true; }