/// <summary> /// This test builds a <see cref="TestQueue"/> and runs /// all of the subtests identified by their name. /// </summary> /// <param name="runThese">names of tests to run; null indicates all tests of the testgroup</param> /// <param name="arg">argument to send to the <see cref="ISubTest"/> objects</param> public void RunTests(string[] runThese, ISubTestArgument arg) { TestQueue tq = null; if (runThese == null) { tq = new TestQueue(this.AllTests.Values, arg); } else { ArrayList run = new ArrayList(); foreach (string name in runThese) { bool added = false; foreach (ISubTest sub in this.AllTests.Values) { if (name == sub.Name) { run.Add(sub); added = true; break; } } if (added == false) { throw new ApplicationException("RunTests(): Specified the name of a test that does not exist in the test group."); } } tq = new TestQueue(run, arg); } // run all of the tests arg.ActiveTests = tq; tq.RunQueue(); }