public void CreateMissingSpecFolder() { var specFolder = HierarchyLoader.SelectSpecPath(Path.ToFullPath()); if (!Directory.Exists(specFolder)) { Console.WriteLine("Creating /Specs folder at " + specFolder); Directory.CreateDirectory(specFolder); } }
public static string GuessSpecDirectory() { var path = AppContext.BaseDirectory; while (Path.GetFileName(path).EqualsIgnoreCase("bin") || Path.GetFileName(path).EqualsIgnoreCase("debug") || Path.GetFileName(path).EqualsIgnoreCase("release")) { path = path.ParentDirectory(); } return(HierarchyLoader.SelectSpecPath(path)); }
public static string GuessSpecDirectory(ISystem system) { #if NET46 var path = AppDomain.CurrentDomain.BaseDirectory; #else var path = AppContext.BaseDirectory; #endif var projectName = system.GetType().GetTypeInfo().Assembly.GetName().Name; var fileName = Path.GetFileName(path); while (fileName != projectName && !Directory.Exists(path.AppendPath("Specs"))) { path = path.ParentDirectory(); fileName = Path.GetFileName(path); } return(HierarchyLoader.SelectSpecPath(path)); }
public override bool Execute(RunInput input) { try { var specFolder = HierarchyLoader.SelectSpecPath(input.Path); var top = HierarchyLoader.ReadHierarchy(specFolder); var specs = input.GetBatchRunRequest().Filter(top); if (!specs.Any()) { ConsoleWriter.Write(ConsoleColor.Yellow, "Warning: No specs found!"); } } catch (SuiteNotFoundException ex) { ConsoleWriter.Write(ConsoleColor.Red, ex.Message); return(false); } var controller = input.BuildRemoteController(); var task = controller.Start(EngineMode.Batch).ContinueWith(t => { var systemRecycled = t.Result; if (!systemRecycled.success) { systemRecycled.WriteSystemUsage(); return(false); } writeSystemUsage(systemRecycled); var execution = input.StartBatch(controller); // TODO -- put a command level timeout on this thing execution.Wait(); var results = execution.Result; var regression = results.Summarize(Lifecycle.Regression); var acceptance = results.Summarize(Lifecycle.Acceptance); if (input.LifecycleFlag != Lifecycle.Regression) { Console.WriteLine(acceptance); } if (input.LifecycleFlag != Lifecycle.Acceptance) { Console.WriteLine(regression); } var success = regression.Failed == 0; results.suite = input.WorkspaceFlag; results.system = systemRecycled.system_name; results.time = DateTime.Now.ToString(); results.fixtures = systemRecycled.fixtures; var document = BatchResultsWriter.BuildResults(results); Console.WriteLine("Writing results to " + input.ResultsPathFlag); document.WriteToFile(input.ResultsPathFlag); if (input.DumpFlag.IsNotEmpty()) { dumpJson(input, results); } if (input.CsvFlag.IsNotEmpty()) { writePerformanceData(input, results); } if (input.JsonFlag.IsNotEmpty()) { Console.WriteLine("Writing the raw result information to " + input.JsonFlag); PerformanceDataWriter.WriteJSON(results, input.JsonFlag); } if (input.OpenFlag) { Process.Start(input.ResultsPathFlag); } if (success) { ConsoleWriter.Write(ConsoleColor.Green, "Success!"); } else { ConsoleWriter.Write(ConsoleColor.Red, "Failed with Regression Failures!"); } return(success); }); task.Wait(); controller.SafeDispose(); return(task.Result); }