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); }