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);
 }
 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);
 }
Пример #10
0
 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 JoinWith(OnDemandRun run)
 {
     Tests = join(Tests, run.Tests);
     Members = join(Members, run.Members);
     Namespaces = join(Namespaces, run.Namespaces);
 }
Пример #15
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 AddRun(OnDemandRun run)
 {
     _runs.Add(run);
 }
Пример #21
0
 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);
 }