예제 #1
0
        private static DefaultTestRunner.TestPlan CreatePlan(params string[] names)
        {
            var opts    = new TestRunnerOptions();
            var testRun = new TestRun();

            testRun.Children.AddAll(TestUnits(names));
            var runner = new DefaultTestRunner(opts);

            return((DefaultTestRunner.TestPlan)runner.CreatePlan(testRun));
        }
예제 #2
0
        public void WillRunTestCases_should_contain_all_when_ignoring_focus()
        {
            var opts = new TestRunnerOptions {
                IgnoreFocus = true,
            };
            var testRun = new TestRun();

            testRun.Children.AddAll(TestUnits("A", "B"));

            var runner = new DefaultTestRunner(opts);
            var plan   = (DefaultTestRunner.TestPlan)runner.CreatePlan(testRun);
            var names  = WillRun(plan);

            Assert.Equal(new [] { "TestA1", "TestB1", "TestB2", "TestB3" }, names);
        }
예제 #3
0
        public void WillRunTestCases_should_contain_focus_match_names()
        {
            var opts = new TestRunnerOptions();

            opts.PlanFilter.FocusPatterns.AddNew("regex:(2|3)$");
            var testRun = new TestRun();

            testRun.Children.AddAll(TestUnits("C"));
            var runner = new DefaultTestRunner(opts);
            var plan   = (DefaultTestRunner.TestPlan)runner.CreatePlan(testRun);

            var names = WillRun(plan);

            Assert.Equal(new [] { "TestC2", "TestC3" }, names);
        }
        /// <summary>
        /// RunTest.
        /// </summary>
        public void RunTest(ITest test)
        {
            ManualResetEvent mre = new ManualResetEvent(false);
            Thread           t   = new Thread(new ThreadStart(delegate() {
                DefaultTestRunner.RunTestHelper(test);
                mre.Set();
            }));

            t.Start();
            if (!WaitHandle.WaitAll(new WaitHandle[] { mre }, _timeout, false))
            {
                t.Abort();
                test.Result.Status = TestStatus.Fail;
                test.Result.Message.AppendFormat("Maximim execution time {0}ms exceeded.", _timeout);
            }
        }
예제 #5
0
        public void WillRunTestCases_should_prefer_focus_specified_by_options()
        {
            var opts = new TestRunnerOptions();

            opts.PlanFilter.FocusPatterns.AddNew("regex:2$");

            var testRun = new TestRun();

            testRun.Children.AddAll(TestUnits("A", "B", "C", "D"));
            var runner = new DefaultTestRunner(opts);
            var plan   = (DefaultTestRunner.TestPlan)runner.CreatePlan(testRun);

            var names = WillRun(plan);

            Assert.Equal(new [] { "TestB2", "TestC2", "TestD2" }, names);
        }
예제 #6
0
        static string[] WillRun(Action <TestPlanFilter> planner)
        {
            var testRun = new TestRun();
            var opts    = new TestRunnerOptions();

            planner(opts.PlanFilter);

            testRun.Children.AddAll(TestUnits("A", "B", "C", "D"));
            var runner = new DefaultTestRunner(opts);
            var plan   = (DefaultTestRunner.TestPlan)runner.CreatePlan(testRun);

            Func <string, string> removePrefix = s => {
                const string prefix = "Carbonfrost.SelfTest.Spec.ExecutionModel.TestPlanFilterTests+";
                if (s.StartsWith(prefix, StringComparison.Ordinal))
                {
                    return(s.Substring(prefix.Length + 2));
                }
                return(s);
            };

            return(plan.WillRunTestCases.Select(t => removePrefix(t.TestName.Method)).ToArray());
        }
예제 #7
0
 public FailFastTestPlan(DefaultTestRunner runner, TestRun run, TestRunnerOptions normalized)
     : base(runner, run, normalized)
 {
 }