protected string GetProjectOutputPath(TestFixturOption testFixtureOptions)
      {
         //Need to get output path and output filename here
         Properties properties = testFixtureOptions.Project.ConfigurationManager.ActiveConfiguration.Properties;

         foreach (Property property in properties)
         {
            if (property.Name.Equals("OutputPath"))
            {
               string pName = property.Name;
               string value = property.Value as string;

               if (value != null)
               {
                  return ToShortPathName(ProjectExaminar.GetProjectPath(testFixtureOptions.Project)) + "\\" + value + testFixtureOptions.Project.Name + ".dll";
               }
            }
         }

         return string.Empty;
      }
Пример #2
0
      private void OnAttachToProcessFile()
      {
         TestFixturOption runOption = new TestFixturOption();

         List<TestFixturOption> lstRunOptions = new List<TestFixturOption>();

         try
         {
            string currentFile = _applicationObject.ActiveWindow.Document.FullName.ToLower();
           
            if (currentFile.EndsWith(".cs") || currentFile.EndsWith(".vb"))
            {
               runOption.IsDebugging = true;
               runOption.Project = _applicationObject.ActiveDocument.ProjectItem.ContainingProject;
               lstRunOptions.Add(runOption);  
            }

           
            System.Threading.Thread t = new System.Threading.Thread(
               new System.Threading.ParameterizedThreadStart(OnProjectCommandHandler));

            t.Start((object)lstRunOptions);

         }
         catch (Exception ex)
         {
            Logger.LogException(ex);

            UTGHelper.ErrorHandler.HandleException(ex);
         }

      }
Пример #3
0
      public void Exec(string CmdName, vsCommandExecOption ExecuteOption, ref object VariantIn, ref object VariantOut, ref bool Handled)
      {
         try
         {
            Handled = false;

            if (ExecuteOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
               //re-factor
               if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.CODEWINDOW_TOKEN_COMMAND_NAME)
               {
                  OnTokenCodeWindowCommandHandler();
                  Handled = true;
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.CODEWINDOW_TEST_METHOD_COMMAND_NAME)
               {
                  OnTestMethodCommandHandler();
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.CODEWINDOW_TEST_CLASS_COMMAND_NAME)
               {
                  OnTestClassCommandHandler();
               }
               else
               if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.PROJECT_SOLUTION_COMMAND_NAME)
               {
                  OnSolutionCommandHandler();
               }
               else
               if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.CODEWINDOW_ATTACH_COMMAND_NAME)
               {
                  OnAttachToProcessFile();
                  Handled = true;
               }
               else
               if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.CODEWINDOW_PROJECT_COMMAND_NAME)
               {
                  OnProjectCodeWindowCommandHandler();
                  Handled = true;
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.CODEWINDOW_PARTCOVER_COMMAND_NAME)
               {
                  List<TestFixturOption> lstRunOptions = new List<TestFixturOption>();
                  
                  TextSelection sel = (TextSelection)_applicationObject.ActiveDocument.Selection;

                  //current scope
                  FileCodeModel2 fcm = (FileCodeModel2)_applicationObject.ActiveDocument.ProjectItem.FileCodeModel;

                  //Noticed that null happens on metadata files...
                  if (fcm == null)
                  {
                     throw new Exception(UTGHelper.CommonErrors.ERR_ILLEGAL_TEXT_SELECTION);
                  }

                  CodeElement ce = CodeExaminor.FindInnerMostCodeElement(fcm.CodeElements, sel.TopPoint);

                  if (ce != null && (ce is CodeClass || ce is CodeClass2))
                  {
                     TestFixturOption runOption = new TestFixturOption();
                     runOption.Project = ce.ProjectItem.ContainingProject;
                     CodeClass cc = ce as CodeClass;
                     runOption.CClass = cc;
                     lstRunOptions.Add(runOption);
                  }

                  OnPartCoverCodeWindowCommandHandler(lstRunOptions);
                  
                  Handled = true;
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.PROJECT_COMMAND_NAME)
               {
                  List<TestFixturOption> lstRunOptions = new List<TestFixturOption>();
                  
                  List<Project> lstProjects = GetSelectedProjectInProjectHierarchy();

                  foreach (Project pro in lstProjects)
                  {
                     TestFixturOption runOptions = new TestFixturOption();
                     runOptions.Project = pro;
                     runOptions.IsDebugging = false;
                     lstRunOptions.Add(runOptions);
                  }

                  OnRunTestCommandHandler(lstRunOptions);

                  Handled = true;
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.PROJECT_PARTCOVER_COMMAND_NAME)
               {
                  List<TestFixturOption> lstRunOptions = new List<TestFixturOption>();
                  List<Project> lstProjects = GetSelectedProjectInProjectHierarchy();

                  foreach (Project pro in lstProjects)
                  {
                     TestFixturOption runOptions = new TestFixturOption();
                     runOptions.Project = pro;
                     runOptions.IsDebugging = false;
                     lstRunOptions.Add(runOptions);
                  }

                  OnPartCoverProjectCommandHandler(lstRunOptions);

                  Handled = true;
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.PROJECT_COMMAND_ERROR_CLEAR_NAME)
               {
                  OnProjectErrorListForceClear();
                  Handled = true;
               }
               else if (CmdName == _addInInstance.ProgID + "." + UTGHelper.CommonStrings.PROJECT_SYNC_REF_COMMAND_NAME)
               {
                  OnProjectResyncReferences();
                  Handled = true;
               }
            }
         }
         catch (Exception ex)
         {
            Logger.LogException(ex);

            ErrorHandler.HandleException(ex);
         }
      }
Пример #4
0
      private void RunUnitTests(TestFixturOption testRunOption)
      {
         try {

            if (!this.testFramework.run(testRunOption, _applicationObject))
            {
               UTGHelper.ErrorHandler.ShowMessage("Failed to test code!");
            }
         }
         catch (Exception ex)
         {
            Logger.LogException(ex);

            UTGHelper.ErrorHandler.HandleException(ex);
         }
      }
Пример #5
0
      private void ExamineCodeCoverage(TestFixturOption runOption)
      {
         try {

            if (!this.coverageFramework.Examine(runOption, _applicationObject))
            {
               UTGHelper.ErrorHandler.ShowMessage("Failed to examine code!");
            }
         }
         catch (Exception ex)
         {
            Logger.LogException(ex);

            UTGHelper.ErrorHandler.HandleException(ex);
         }
      }
Пример #6
0
      private void OnSolutionCommandHandler()
      {
         List<TestFixturOption> lstRunOptions = new List<TestFixturOption>();
         List<Project> lstProjects = GetProjectInProjectHierarchy();

         foreach (Project proj in lstProjects)
         {
            if (ProjectExaminar.IsUnitTestProject(proj, this.testFramework.FrameworkTestAttributes))
            {
               TestFixturOption runOption = new TestFixturOption();
               runOption.IsDebugging = false;
               runOption.Project = proj;
               lstRunOptions.Add(runOption);
            }
         }


         OnRunTestCommandHandler(lstRunOptions);
      }
Пример #7
0
      private void OnTestClassCommandHandler()
      {
         List<TestFixturOption> lstRunOptions = new List<TestFixturOption>();
         
         FileCodeModel2 fcm = (FileCodeModel2)_applicationObject.ActiveDocument.ProjectItem.FileCodeModel;

         //Noticed that null happens on metadata files...
         if (fcm == null)
         {
            UTGHelper.UserAlertBox userAlert = new UserAlertBox("No selection is made!", UserAlertBox.UserAlertType.regularMessage);
            userAlert.Show();
            return;
         }

         TextSelection sel = (TextSelection)_applicationObject.ActiveDocument.Selection;

         
         CodeElement ce = CodeExaminor.FindInnerMostCodeElement(fcm.CodeElements, sel.TopPoint);

         if (ce is CodeClass)
         {
            TestFixturOption runOption = new TestFixturOption();
            runOption.IsDebugging = false;
            runOption.Project = ce.ProjectItem.ContainingProject;
            runOption.CClass = ce as CodeClass;
            lstRunOptions.Add(runOption);
         }
         else
         {
            UTGHelper.UserAlertBox userAlert = new UserAlertBox("Selection is not a Method or Function!", UserAlertBox.UserAlertType.regularMessage);
            userAlert.Show();
            return;
         }

         OnRunTestCommandHandler(lstRunOptions);
      }
 protected abstract string FormatFrameworkArgument(TestFixturOption runOption);
Пример #9
0
 public abstract bool run(TestFixturOption TestFixturOption, DTE2 applicationObject);
 public abstract bool Examine(TestFixturOption testFixturOption, DTE2 applicationObject);
Пример #11
0
      protected override string FormatFrameworkArgument(TestFixturOption runOption)
      {
         if (runOption.Project == null)
         {
            throw new ArgumentNullException("testFixturOption.Project can not be null");
         }

         string outPutXml = "OpenCoverOutput.xml";

         #region example in plain test
         //OpenCover.Console.exe -register:user -target:nunit-console-x86.exe -targetargs:"/noshadow Test.dll" -filter:+[*]* -output:coverage.xml
         #endregion

         //We are better off with a StringBuilder here but since this is not an operation often performed we can get away with it
         string tvArguments = string.Empty;

         tvArguments += " -register:user ";

         tvArguments += "-target:\"" + System.IO.Path.Combine(this.testFramework.ConsoleDirectory, this.testFramework.ConsoleName);

         Project project = runOption.Project;

         string projectPath = ProjectExaminar.GetProjectPath(project);

         string tvOutputReportFullName = projectPath + "\\" + outPutXml;

         if (System.IO.File.Exists(tvOutputReportFullName))
         {
            System.IO.File.Delete(tvOutputReportFullName);
         }

         if (!UTGHelper.IO.CreateFile(tvOutputReportFullName))
         {
            return string.Empty;
         }
        
         tvArguments += "\" -output:\"";

         tvArguments += ToShortPathName(tvOutputReportFullName);

         tvArguments += "\" -targetargs:\"/noshadow ";
 
         tvArguments += GetProjectOutputPath(runOption);
       
         //Just to get this working we are not filtering however recode this so that we filter based on the runOption
         tvArguments += "\" -filter:+[*]*";
         
         return tvArguments;
      }
Пример #12
0
      public override bool Examine(TestFixturOption testFixturOption, DTE2 applicationObject)
      {
         if (testFixturOption.Project == null) {

            throw new ArgumentNullException("testFixturOption.Project can not be null");
         }

         if (applicationObject == null) {

            throw new ArgumentNullException("applicationObject can not be null");
         }

         try
         {
            string outPutXml = "OpenCoverOutput.xml";

            if (this.binariesDirectory == null || this.binariesDirectory == string.Empty) {

               BrowseForCoverLibraries tvLocateNUnitBinaries = new BrowseForCoverLibraries(UTGHelper.CommonErrors.ERR_UNABLE_TO_LOCATE_COVER_INSTALL_FOLDER, this);
               
               tvLocateNUnitBinaries.Show();

               return false;
            }

            Project project = testFixturOption.Project;

            string projectPath = ProjectExaminar.GetProjectPath(project);

            if (CoverageExaminationStarted != null)  {

               CoverageExaminationStarted();
            }

            string tvArgument = FormatFrameworkArgument(testFixturOption);

            System.Diagnostics.ProcessStartInfo psi =
                 new System.Diagnostics.ProcessStartInfo(System.IO.Path.Combine(this.ConsoleDirectory, this.ConsoleName), tvArgument);

            psi.UseShellExecute = false;

            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            psi.RedirectStandardOutput = true;

            psi.CreateNoWindow = true; //this is the one that works

            System.Diagnostics.Process process = System.Diagnostics.Process.Start(psi);

            System.IO.StreamReader myOutput = process.StandardOutput;

            string output = string.Empty;

            if (!process.WaitForExit(exitWaitPeriod)) {
               return false;
            }

            output += myOutput.ReadToEnd();

            bool success = ShowReport(projectPath, outPutXml);

            if (success)
            {
               if (CoverageExaminationEnded != null)
               {
                  CoverageExaminationEnded(project, "Changed text to something else here...");
               }
            }

            //consider moving to http://reportgenerator.codeplex.com/ instead....

            return true;
         }
         catch (Exception ex)
         {
            Logger.LogException(ex);
         }

         return false;
      }
Пример #13
0
      public override bool run(TestFixturOption testFixturOption, DTE2 applicationObject)
      {
         try
         {
            string output = string.Empty;
            string tvTestFixtureOptions = string.Empty;
            string tvOutputFileFullname = string.Empty;

            if (testFixturOption.CClass != null)
            {
               tvTestFixtureOptions = " /fixture:";

               tvTestFixtureOptions += testFixturOption.CClass.FullName;

               tvOutputFileFullname = UTGManagerAndExaminor.ProjectExaminar.GetProjectOutputFullAssemblyName(testFixturOption.CClass.ProjectItem.ContainingProject);

               tvTestFixtureOptions += " \"" + tvOutputFileFullname + "\"";

               if (testFixturOption.ConfigurationFile != string.Empty)
                  tvTestFixtureOptions += " /config:\"" + tvOutputFileFullname + ".config\"";
            }
            else if (testFixturOption.CFunction != null)
            {
               tvTestFixtureOptions = " /run:";

               CodeClass parentClass = testFixturOption.CFunction.Parent as CodeClass;

               tvTestFixtureOptions += testFixturOption.CFunction.FullName;

               tvOutputFileFullname = UTGManagerAndExaminor.ProjectExaminar.GetProjectOutputFullAssemblyName(parentClass.ProjectItem.ContainingProject);

               tvTestFixtureOptions += " \"" + tvOutputFileFullname + "\"";
             
               if (tvTestFixtureOptions.Length > 0)
               {
                  if (testFixturOption.ConfigurationFile != string.Empty)
                     tvTestFixtureOptions += " /config:\"" + tvOutputFileFullname + ".config\"";
               }
            }
            else
            {
               if (tvOutputFileFullname.Equals(string.Empty))
               {
                  tvOutputFileFullname = UTGManagerAndExaminor.ProjectExaminar.GetProjectOutputFullAssemblyName(testFixturOption.Project);
                  tvTestFixtureOptions = "\"" + tvOutputFileFullname + "\"";
               }

               if (testFixturOption.ConfigurationFile != string.Empty)
                  tvTestFixtureOptions += " /config:\"" + tvOutputFileFullname + ".config\"";
            }

            tvTestFixtureOptions += " /xmlConsole";

            ProjectExaminar.GetProjectOutputType(testFixturOption.Project);

            ProjectItem projectItem = ProjectExaminar.GetProjectConfigurationFile(testFixturOption.Project);

            Project project = testFixturOption.Project;

            if (this.binariesDirectory == null || this.binariesDirectory == string.Empty) {
               BrowseForUnitLibraries tvLocateNUnitBinaries = new BrowseForUnitLibraries(
                         UTGHelper.CommonErrors.ERR_UNABLE_TO_LOCATE_NUNIT_INSTALL_FOLDER, BrowseForUnitLibraries.BrowseForNunitDialogType.libraries, this);

               tvLocateNUnitBinaries.Show();

               return false;
            }

            if (this.consoleDirectory == null || this.consoleDirectory == string.Empty) {

               BrowseForUnitLibraries tvLocateNUnitBinaries = new BrowseForUnitLibraries(
                       UTGHelper.CommonErrors.ERR_UNABLE_TO_LOCATE_NUNIT_CONSOLE, BrowseForUnitLibraries.BrowseForNunitDialogType.console, this);

               tvLocateNUnitBinaries.Show();

               return false;
            }

            string processFullPath = System.IO.Path.Combine(this.consoleDirectory, this.ConsoleName);

            if (TestStarted != null)
            {
               TestStarted();
            }

#if _PROCESS_START_WIN32_
            
            ProcessTypes.StartupInfo startInfo = new ProcessTypes.StartupInfo();
            ProcessTypes.ProcessInfo processInfo = new ProcessTypes.ProcessInfo();

            IntPtr ThreadHandle = IntPtr.Zero;

            string commandLine = (arguments != null ? libraryPath + arguments : libraryPath);

            //string commandLine = @"C:\Users\Sam\documents\visual studio 2010\Projects\MyClassLibrary\MyClassLibrary.nunit\bin\Debug\MyClassLibrary.nunit.dll"; 

            bool success = CreateProcess(processFullPath, commandLine, IntPtr.Zero, IntPtr.Zero, false,
               ProcessTypes.ProcessCreationFlags.CREATE_SUSPENDED, 
               IntPtr.Zero, null, ref startInfo, out processInfo);

            if (!success) {
               UTGHelper.Logger.LogMessage("Failed to start unit test process");
               return false;
            }

            ThreadHandle = processInfo.hThread;
            uint PID = processInfo.dwProcessId;

            ResumeThread(ThreadHandle);

            return true;
           
#else

            System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(processFullPath, tvTestFixtureOptions);

            //we choose to redirect output, but we could also just use the TestResult.xml file 
            psi.RedirectStandardOutput = true;

            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            psi.UseShellExecute = false;

            psi.CreateNoWindow = true; //this is the one that works

            System.Diagnostics.Process process = System.Diagnostics.Process.Start(psi);

            if (testFixturOption.IsDebugging)
            {
               AttachToProcessThread(applicationObject);
            }

            System.IO.StreamReader myOutput = process.StandardOutput;

            process.WaitForExit(60000);

            if (!process.HasExited)
            {
               UTGHelper.ErrorHandler.ShowMessage(UTGHelper.CommonErrors.ERR_UNABLE_TO_RUN_UNITTEST + " " + "Failed to exit process");

               return false;
            }

            output += myOutput.ReadToEnd();
#endif
            //This should be fixed by simple passing the argument that suppresses the copyright text /nologo 
            output = PatchFunctionMessageTestOutput(output);

            if (output.Equals(string.Empty))
            {

               UTGHelper.ErrorHandler.ShowMessage(UTGHelper.CommonErrors.ERR_UNABLE_TO_RUN_UNITTEST);

               return false;
            }

            System.Xml.XmlDocument xmlTestResultDoc =
               NUnitXmlResultProccessor.ToXmlDoc(output);

            System.Xml.XmlNodeList xmlTestResultsNodeList =
               NUnitXmlResultProccessor.GetTestCases(xmlTestResultDoc);

            List<System.Xml.XmlNode> successfulTestSuites =
              NUnitXmlResultProccessor.GetSuccessfulTestSuites(xmlTestResultsNodeList);

            List<System.Xml.XmlNode> failedTestSuites =
             NUnitXmlResultProccessor.GetFailedTestSuites(xmlTestResultsNodeList);

            List<System.Xml.XmlNode> failedExecutionSuites =
               NUnitXmlResultProccessor.GetFailedExecutionSuites(xmlTestResultsNodeList);

            List<UnitTestError> lstUnitTestPassed =
               NUnitXmlResultProccessor.GetSuccessfulTestSuitesAsUnitTestErrors(successfulTestSuites);

            List<UnitTestError> lstUnitTestErrors =
               NUnitXmlResultProccessor.GetFailedTestSuitesAsUnitTestErrors(failedTestSuites);

            List<UnitTestError> lstUnitTestsFialedToExecute =
               NUnitXmlResultProccessor.GetFailedExecutionsAsUnitTestErrors(failedExecutionSuites);

            if (TestEnded != null)
            {
               TestEnded(testFixturOption.Project, lstUnitTestPassed, lstUnitTestErrors, lstUnitTestsFialedToExecute);
            }

            return true;
         }
         catch (Exception ex)
         {
            Logger.LogException(ex);
         }

         return false;
      }
Пример #14
0
      protected override string FormatFrameworkArgument(TestFixturOption runOption)
      {
         #region example in plain test
         //PartCover.exe 
         //--target="C:\Program Files\NUnit 2.4.6\bin\nunit-console.exe" 
         //--target-args="C:\Temp\MyClassLibrary\MyClassLibrary.nunit\MyClassLibrary.nunit.csproj" 
         //--include=[MyClassLibrary]*
         #endregion

         //fix was found http://www.pinvoke.net/default.aspx/kernel32.GetShortPathName
         string tvArguments = string.Empty;

         tvArguments += "--target=\"" + System.IO.Path.Combine(this.CommandsDirectory, this.ConsoleName);

         string tvOutputReportFullName = ProjectExaminar.GetProjectPath(runOption.Project) + "\\PartCoverOutput.xml";

         if (System.IO.File.Exists(tvOutputReportFullName))
         {
            System.IO.File.Delete(tvOutputReportFullName);
         }

         if (!UTGHelper.IO.CreateFile(tvOutputReportFullName))
         {
            return string.Empty;
         }

         tvArguments += "\" --output=\"";

         tvArguments += ToShortPathName(tvOutputReportFullName);

         tvArguments += "\" --target-args=\"";

         //Next line can be iffy when doing this runOption.Project.Name + ".csproj"
         tvArguments += ToShortPathName(ProjectExaminar.GetProjectPath(runOption.Project)) + "\\" + runOption.Project.Name + ".csproj";

         if (runOption.CClass == null)
         {
            tvArguments += "\" --include=[";
            tvArguments += ProjectExaminar.GetProjectNamespaceName(ProjectExaminar.GetUnitTestProjectsOriginalProject(
                  runOption.Project.Name, (DTE2)runOption.Project.DTE, testFramework.TestProjectPostFix));
            tvArguments += "]";
            tvArguments += "*";
         }
         else
         {
            tvArguments += "\"";

            string tvClassName = ProjectItemExaminor.GetUnitTestClassOriginalClassName(runOption.CClass.Name, testFramework.TestClassFixturePostFix);
            string tvClassNamespace = ProjectItemExaminor.GetUnitTestClassOriginalClassNamespace(runOption.CClass.Namespace.FullName);

            Project project = ProjectExaminar.GetUnitTestProjectsOriginalProject(runOption.Project.Name, (DTE2)runOption.Project.DTE, testFramework.TestProjectPostFix);

            if (project == null)
            {
               throw new Exception(string.Format("Unable to locate Unit Test Project for the Project {0}.", runOption.Project.Name));
            }

            tvArguments += " --include=[";
            tvArguments += ProjectExaminar.GetProjectNamespaceName(project);
            tvArguments += "]";
            tvArguments += tvClassNamespace;
            tvArguments += ".";
            tvArguments += tvClassName;
            tvArguments += "* ";
         }

         return tvArguments;
      }
Пример #15
0
      public override bool Examine(TestFixturOption testFixturOption, DTE2 applicationObject)
      {
         if (testFixturOption.Project == null)
         {
            throw new ArgumentNullException("testFixturOption.Project can not be null");
         }

         if (applicationObject == null)
         {
            throw new ArgumentNullException("applicationObject can not be null");
         }

         try
         {
            if (this.binariesDirectory == null || this.binariesDirectory == string.Empty) {

               BrowseForCoverLibraries tvLocateNUnitBinaries = new BrowseForCoverLibraries(UTGHelper.CommonErrors.ERR_UNABLE_TO_LOCATE_COVER_INSTALL_FOLDER, this);
               
               tvLocateNUnitBinaries.Show();

               return false;
            }

            Project project = testFixturOption.Project;

            if (CoverageExaminationStarted != null)  {
               CoverageExaminationStarted();
            }

            string tvArgument = FormatFrameworkArgument(testFixturOption);

            System.Diagnostics.ProcessStartInfo psi =
                 new System.Diagnostics.ProcessStartInfo(System.IO.Path.Combine(this.BinariesDirectory, this.CommandName), tvArgument);

            psi.UseShellExecute = false;

            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

            psi.RedirectStandardOutput = true;

            psi.CreateNoWindow = true; //this is the one that works

            System.Diagnostics.Process process = System.Diagnostics.Process.Start(psi);

            System.IO.StreamReader myOutput = process.StandardOutput;

            string output = string.Empty;

            if (!process.WaitForExit(exitWaitPeriod))
            {
               return false;
            }

            output += myOutput.ReadToEnd();

            UTGCoverage.CoverageReport report = new UTGCoverage.CoverageReport();

            System.IO.StreamReader reader = new System.IO.StreamReader(ProjectExaminar.GetProjectPath(testFixturOption.Project) + "\\PartCoverOutput.xml");

            UTGCoverage.ReportProvider.ReadReport(report, reader);

            reader.Close();

            System.Windows.Forms.TreeView trview = UTGCoverage.ReportProvider.ShowReport(report, UTGHelper.PartCoverUserControle.treeView1);

            UTGHelper.PartCoverUserControle.treeView1.Refresh();

            if (CoverageExaminationEnded != null) {

               CoverageExaminationEnded(testFixturOption.Project, string.Format("{0} at {1}.", "PartCoverOutput.xml", ProjectExaminar.GetProjectPath(testFixturOption.Project)));   
            }

            return true;
         }
         catch (Exception ex)
         {
            Logger.LogException(ex);
         }

         return false;
      }