Beispiel #1
0
        public int FinishCurrentTest(AutomationElement ParentObj)
        {
            Logger NewLogObj   = new Logger();
            string LogFilePath = NewLogObj.GetLogFilePath();

            NewLogObj.WriteLogFile(LogFilePath, "FinishCurrentTest", "info");
            NewLogObj.WriteLogFile(LogFilePath, "====================", "info");
            FileOperations FileObj = new FileOperations();
            //string GuizardPathFile = Directory.GetCurrentDirectory() + "//GuizardPathFile.txt";
            //string GuiZardLocation = FileObj.GetInputPattern(GuizardPathFile, "GuizardLocation");
            Generic NewGenericObj = new Generic();

            try
            {
                string SystemLocale = NewGenericObj.GetSystemLocale();
                //NewLogObj.WriteLogFile(LogFilePath, "SystemLocale " + SystemLocale, "info");
                string InputFileName = Directory.GetCurrentDirectory() + "\\Inputs\\Inputs_" + SystemLocale + ".txt";

                string GuiZardLocation = FileObj.GetInputPattern(InputFileName, "GuiZardLocation");
                string CurrentFileName = Environment.GetCommandLineArgs()[1];
                //Remove the .txt part
                string Testname = CurrentFileName.Substring(0, CurrentFileName.Length - 4);
                //Check if guizard is running
                string GuizardResultsFolder = null;

                int ProcessStatus = NewGenericObj.CheckIfProcessIsRunning("GUIzard_3");
                if (ProcessStatus == 1)
                {
                    NewLogObj.WriteLogFile(LogFilePath, "Guizard is running. Verifying Guizard results", "info");
                    Guizard NewGuiZardObj = new Guizard();
                    //Verify results of GUizard
                    GuizardResultsFolder = NewGuiZardObj.VerifyGuiZardResults(Testname);
                    //NewGuiZardObj.VerifyGuiZardResults(Testname);
                    //GuizardResultsFolder = "C:\\TestResults\\" + Testname;
                    NewGuiZardObj.CreateGuizardStopTestFile(GuiZardLocation);
                    //Giving enough time for guizard to close
                    NewGuiZardObj.WaitTillGuizardClose();
                }
                else
                {
                    NewLogObj.WriteLogFile(LogFilePath, "Guizard is not running.", "info");
                }
                //Close the XenCenter
                AutomationElementIdentity GuiObj = new AutomationElementIdentity();

                GuiObj.CloseChildWindowsUnderParent(ParentObj, 0);

                //check if process is still running
                string ParentProcessName   = FileObj.GetInputPattern(InputFileName, "ParentProcessName");
                int    ParentProcessStatus = NewGenericObj.CheckIfProcessIsRunning(ParentProcessName);
                if (ParentProcessStatus == 1)
                {
                    NewLogObj.WriteLogFile(LogFilePath, "Process " + ParentProcessName + "still running even after close. Killing the parent process", "fail");
                    NewGenericObj.KillProcess(ParentProcessName, LogFilePath);
                }
                //int Status = ReadLogFileForStatus(Testname);
                string   TempStatus     = ReadLogFileForStatus(Testname);
                string[] Temp           = null;
                string   TempStr        = null;
                string   Status         = null;
                string   FailureSummary = null;
                if (string.Compare(TempStatus, "1") == 0)
                {
                    Status = "1";
                }
                else
                {
                    Temp   = Regex.Split(TempStatus, ":");
                    Status = Temp[0];
                    //if(Status==1)
                    //Extracting the fail summary
                    int IndexFontColor = Temp[4].IndexOf("=");
                    TempStr = Temp[4].Substring(IndexFontColor);

                    if (Regex.IsMatch(TempStr, "guizard", RegexOptions.IgnoreCase))
                    {
                        FailureSummary = "GUIZard failures";
                    }
                    else
                    {
                        int MarkerIndex1 = TempStr.IndexOf(">");
                        int MarkerIndex2 = TempStr.IndexOf("<");
                        FailureSummary = TempStr.Substring(MarkerIndex1 + 1, MarkerIndex2 - (MarkerIndex1 + 1));
                    }
                }
                if (string.Compare(Status, "1") == 0)
                {
                    //NewLogObj.WriteLogFile(LogFilePath, "*******************************************", "info");
                    NewLogObj.WriteLogFile(LogFilePath, "Test " + Testname + "  PASS", "PASS");
                    //NewLogObj.WriteLogFile(LogFilePath, "*******************************************", "info");
                    NewLogObj.WriteToTestSummaryFile(Testname, "PASS", GuizardResultsFolder, "NA");
                }
                //else if(Status==-1)
                else if (string.Compare(Status, "-1") == 0)
                {
                    //NewLogObj.WriteLogFile(LogFilePath, "*******************************************", "info");
                    NewLogObj.WriteLogFile(LogFilePath, "Test " + Testname + "  FAIL", "FAIL");
                    //NewLogObj.WriteLogFile(LogFilePath, "*******************************************", "info");
                    NewLogObj.WriteToTestSummaryFile(Testname, "FAIL", GuizardResultsFolder, FailureSummary);
                }
                //else if (Status == 0)
                else if (string.Compare(Status, "0") == 0)
                {
                    //NewLogObj.WriteLogFile(LogFilePath, "*******************************************", "info");
                    NewLogObj.WriteLogFile(LogFilePath, "Test " + Testname + "  FAIL", "FAIL");
                    //NewLogObj.WriteLogFile(LogFilePath, "*******************************************", "info");
                    NewLogObj.WriteToTestSummaryFile(Testname, "FAIL", GuizardResultsFolder, FailureSummary);

                    string RerunFilePattern = "^ReRun";
                    if (Regex.IsMatch(CurrentFileName, RerunFilePattern))
                    {
                        Console.WriteLine("Rerun pattern found in filename. Exiting");
                        Environment.Exit(1);
                        Console.WriteLine("Exiting");
                    }
                    else
                    {
                        //Check if rerun is required
                        CheckIfRerunRequired();
                    }
                }
            }
            catch (Exception Ex)
            {
                NewLogObj.WriteLogFile(LogFilePath, "Exception at FinsihCurrentTest " + Ex.ToString(), "warn");
            }
            return(1);
        }