Beispiel #1
0
        public TestRunState RunNamespace(ITestListener testListener, Assembly assembly, string ns)
        {
            var listener = new TDNetRunListener(testListener);
            var runner   = new AppDomainRunner(listener, RunOptions.Default);

            try
            {
                runner.StartRun(assembly);
                runner.RunNamespace(assembly, ns);
            }
            finally
            {
                runner.EndRun(assembly);
            }

            return(listener.TestRunState);
        }
Beispiel #2
0
        public TestRunState RunMember(ITestListener testListener, Assembly assembly, MemberInfo member)
        {
            var listener = new TDNetRunListener(testListener);
            var runner   = new AppDomainRunner(listener, RunOptions.Default);

            try
            {
                runner.StartRun(assembly);
                runner.RunMember(assembly, member);
            }
            finally
            {
                runner.EndRun(assembly);
            }

            return(listener.TestRunState);
        }
        public override void ExecuteRecursive(TaskExecutionNode node)
        {
            var task = (RunAssemblyTask)node.RemoteTask;

            var contextAssembly = LoadContextAssembly(task);

            if (contextAssembly == null)
            {
                return;
            }

            var result = VersionCompatibilityChecker.Check(contextAssembly);

            if (!result.Success)
            {
                Server.TaskException(node.RemoteTask, new[] { new TaskException("no type", result.ErrorMessage, null) });

                return;
            }

            var listener = new PerAssemblyRunListener(Server, task);
            var runner   = new AppDomainRunner(listener, RunOptions.Default);

            node.Flatten(x => x.Children).Each(children => RegisterRemoteTaskNotifications(listener, children));

            try
            {
                runner.StartRun(contextAssembly);
                foreach (var child in node.Children)
                {
                    RunContext(runner, contextAssembly, child);
                }
            }
            finally
            {
                runner.EndRun(contextAssembly);
            }
        }