public TestMonitor(IFacadeTaskServer server, GallioTestItemTask testTask)
            {
                this.server   = server;
                this.testTask = testTask;

                combinedOutcome   = TestOutcome.Passed;
                combinedOutput    = new List <KeyValuePair <FacadeTaskOutputType, string> >();
                pendingExceptions = new List <FacadeTaskException>();

                exceptionVisitor = new ExceptionVisitor(exception =>
                {
                    do
                    {
                        pendingExceptions.Add(new FacadeTaskException(
                                                  exception.Type, exception.Message, exception.StackTrace.ToString()));
                        exception = exception.InnerException;
                    } while (exception != null);
                });
            }
            public TestMonitor(IFacadeTaskServer server, GallioTestItemTask testTask)
            {
                this.server = server;
                this.testTask = testTask;

                combinedOutcome = TestOutcome.Passed;
                combinedOutput = new List<KeyValuePair<FacadeTaskOutputType, string>>();
                pendingExceptions = new List<FacadeTaskException>();

                exceptionVisitor = new ExceptionVisitor(exception =>
                {
                    do
                    {
                        pendingExceptions.Add(new FacadeTaskException(
                            exception.Type, exception.Message, exception.StackTrace.ToString()));
                        exception = exception.InnerException;
                    } while (exception != null);
                });
            }