private void writeRunner(BinaryWriter writer, OnDemandRun run) { writer.Write(run.RunAllTestsInProject); writer.Write(run.Project); writeStringList(writer, run.Tests); writeStringList(writer, run.Members); writeStringList(writer, run.Namespaces); }
private static void add(List<OnDemandRun> runs, Project project) { try { var run = new OnDemandRun(project.FullName); run.ShouldRunAllTestsInProject(); runs.Add(run); } catch { } }
private OnDemandRunInternal add(OnDemandRun run, IAutoTestNetTestRunner runner, IEnumerable<string> tests, IEnumerable<string> members, IEnumerable<string> namespaces) { if (alreadySetToTestAll(run)) return null; var existing = _list.Where(x => x.Project.Equals(run.Project) && x.Runner.Equals(TestRunnerConverter.FromString(runner.Identifier))).FirstOrDefault(); if (existing != null) { Logger.WriteDebug("Joining with existing run " + existing.Project + " with runner " + runner.Identifier); existing.JoinWith(tests, members, namespaces); return existing; } Logger.WriteDebug("Adding new run " + run.Project + " with runner " + runner.Identifier); var internalRun = new OnDemandRunInternal(TestRunnerConverter.FromString(runner.Identifier), run.Project, tests.ToArray(), members.ToArray(), namespaces.ToArray()); _list.Add(internalRun); return _list[_list.Count - 1]; }
public void SetDataFrom(BinaryReader reader) { _runs = new List <OnDemandRun>(); var count = reader.ReadInt32(); for (int i = 0; i < count; i++) { var runAll = reader.ReadBoolean(); var project = reader.ReadString(); var tests = getStringList(reader); var members = getStringList(reader); var namespaces = getStringList(reader); var run = new OnDemandRun(project, tests, members, namespaces); if (runAll) { run.ShouldRunAllTestsInProject(); } _runs.Add(run); } }
public void Append(OnDemandRun run) { foreach (var runner in _identifiers) { var members = new List<string>(); var namespaces = new List<string>(); var tests = getTests(run, runner); if (tests.Count() == 0) members.AddRange(getMemebers(run, runner)); if (tests.Count() == 0 && members.Count == 0) namespaces.AddRange(run.Namespaces); if (nothingToTest(run, tests, members, namespaces)) { Logger.WriteDebug("Nothing to test for on demand run. Skipping " + run.Project + " for runner " + runner.Identifier); addEmtpyRun(run, runner); continue; } var newRun = add(run, runner, tests, members, namespaces); if (newRun == null) continue; if (run.RunAllTestsInProject) newRun.ShouldRunAllTestsInProject(); } }
private void addEmtpyRun(OnDemandRun run, IAutoTestNetTestRunner runner) { _list.Add(new OnDemandRunInternal(TestRunnerConverter.FromString(runner.Identifier), run.Project, new string[] {}, new string[] {}, new string[] {})); }
public void AddRun(OnDemandRun run) { _runs.Add(run); }
public void JoinWith(OnDemandRun run) { Tests = join(Tests, run.Tests); Members = join(Members, run.Members); Namespaces = join(Namespaces, run.Namespaces); }
public void RunTests(OnDemandRun run, Action runOnTaskCompleted) { RunTests(new List<OnDemandRun>(new OnDemandRun[] { run }), runOnTaskCompleted); }
private IEnumerable<string> getMemebers(OnDemandRun run, IAutoTestNetTestRunner runner) { var members = new List<string>(); foreach (var member in run.Members) { Logger.WriteDebug(string.Format("Checking {0} using {1} for memeber {2}", _assembly, runner.Identifier, member)); if (runner.ContainsTestsFor(_assembly, member)) { Logger.WriteDebug(string.Format("{0} contains {1} tests", member, runner.Identifier)); members.Add(member); } } return members; }
private bool nothingToTest(OnDemandRun run, IEnumerable<string> tests, IEnumerable<string> members, IEnumerable<string> namespaces) { return namespaces.Count() == 0 && members.Count() == 0 && tests.Count() == 0 && !run.RunAllTestsInProject; }
private bool alreadySetToTestAll(OnDemandRun run) { return run.RunAllTestsInProject && _list.Where(x => x.Project.Equals(run.Project)).Count() > 0; }
public void StartOnDemandRun(OnDemandRun run) { Analytics.SendEvent("StartOnDemandRun"); _vm.StartOnDemandRun(run); SetLastRun(run); }
private string getAssembly(OnDemandRun run) { var projects = _cache.GetAll<Project>(); var project = projects.Where(x => x.Key.Equals(run.Project)).FirstOrDefault(); if (project == null) { Logger.WriteDebug("Could not match project for on demand run " + run.Project); return null; } var assembly = project.GetAssembly(_configuration.CustomOutputPath); if (!File.Exists(assembly)) { Logger.WriteError(string.Format("Assembly {0} does not exist and cannot be tested", assembly)); return null; } else Logger.WriteDebug(string.Format("Bound test run to assembly {0}", assembly)); return assembly; }
public void AddRuns(OnDemandRun run) { Logger.WriteDebug("About to add add run for " + run.Project); var assembly = getAssembly(run); if (assembly == null) return; var appender = new OnDemandRunAppender(_addToNextRun, getIdentifiers(), assembly); appender.Append(run); }
private IEnumerable<string> getTests(OnDemandRun run, IAutoTestNetTestRunner runner) { var tests = new List<string>(); foreach (var test in run.Tests) { Logger.WriteDebug(string.Format("Checking {0} using {1} for test {2}", _assembly, runner.Identifier, test)); if (runner.IsTest(_assembly, test)) { Logger.WriteDebug(string.Format("{0} is a {1} test", test, runner.Identifier)); tests.Add(test); } } return tests; }
public void SetDataFrom(BinaryReader reader) { _runs = new List<OnDemandRun>(); var count = reader.ReadInt32(); for (int i = 0; i < count; i++) { var runAll = reader.ReadBoolean(); var project = reader.ReadString(); var tests = getStringList(reader); var members = getStringList(reader); var namespaces = getStringList(reader); var run = new OnDemandRun(project, tests, members, namespaces); if (runAll) run.ShouldRunAllTestsInProject(); _runs.Add(run); } }
public void SetLastRun(OnDemandRun run) { _lastOnDemandRun = new List<OnDemandRun> {run}; _lastRelatedTestRun = null; }
private void addItemFor(List<OnDemandRun> runs, Project project) { var run = new OnDemandRun(project.FullName); run.ShouldRunAllTestsInProject(); runs.Add(run); }