Beispiel #1
0
        /// <summary>
        /// Extracts Data from excel.
        /// </summary>LoadTestConfigurations
        /// <param name="errorMessage">Error message.</param>
        /// <returns>False if no error.</returns>
        public static bool InitiliazeTestCaseAndTestData(ref string errorMessage)
        {
            var applicationClass = new ApplicationClass();

            try
            {
                TestCase.UiControls        = new List <UiControl>();
                TestCase.Verifications     = new List <Verification>();
                ConfigName.TestConfigNames = new List <ConfigStep>();
                TestCase.TestStepList      = new List <TestStep>();

                LoadUiControls(applicationClass);

                LoadVerifications(applicationClass);

                LoadTestConfigurations(applicationClass);

                TestConfigurations.Configuration();

                LoadTestCases(applicationClass);

                return(true);
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                LogHelper.ErrorLog(ex, Entities.Constants.ClassName.Data, MethodBase.GetCurrentMethod().Name);
                return(false);
            }
            finally
            {
                WorkBookUtility.CloseExcel(applicationClass);
            }
        }
Beispiel #2
0
        /// <summary>
        /// This function creates a Excel sheet named as the current test case name in Excel report files.
        /// </summary>
        /// <param name="errorMessage">Error message set when error in creating excel.</param>
        /// <returns>True if able to create excel successfully, false otherwise.</returns>
        public static bool InsertTestStepResult(ref string errorMessage)
        {
            var      applicationClass = new ApplicationClass();
            Workbook workbook         = null;

            try
            {
                workbook = WorkBookUtility.OpenWorkBook(applicationClass, FilePath);

                if (workbook.Worksheets == null)
                {
                    errorMessage = string.Format(Entities.Constants.Messages.WorkSheetNotExist, TestCase.Name);
                    return(false);
                }

                var workSheet = (Worksheet)workbook.Worksheets[TestCase.Name];
                workSheet.Name = TestCase.Name;

                var row = 4;
                var testDataIterationNr = 0;
                var styles = workbook.Styles;

                foreach (var resultObj in Result.TestStepsResultsCollection)
                {
                    if (testDataIterationNr < Convert.ToInt32(resultObj.TestDataIterationNr))
                    {
                        row += 1;

                        //// add row to get a blank row
                        testDataIterationNr = Convert.ToInt32(resultObj.TestDataIterationNr);

                        //// Get style header
                        dynamic styleHeader = GetStyle(ReportingStyles.StyleHeader, ref styles);

                        //// Test data iteration header
                        ((Range)workSheet.Cells[row, 1]).Value = Entities.Constants.TestResult.Iteration;
                        ((Range)workSheet.Cells[row, 1]).Style = styleHeader;
                        ((Range)workSheet.Cells[row, 2]).Value = resultObj.TestDataIterationNr;

                        //// Test steps header
                        row += 1;
                        ((Range)workSheet.Cells[row, 1]).Value = Entities.Constants.TestResult.StepNumber;
                        ((Range)workSheet.Cells[row, 1]).Style = styleHeader;
                        ((Range)workSheet.Cells[row, 2]).Value = Entities.Constants.TestResult.Description;
                        ((Range)workSheet.Cells[row, 2]).Style = styleHeader;
                        ((Range)workSheet.Cells[row, 3]).Value = Entities.Constants.TestResult.Result;
                        ((Range)workSheet.Cells[row, 3]).Style = styleHeader;
                        ((Range)workSheet.Cells[row, 4]).Value = Entities.Constants.TestResult.Comment;
                        ((Range)workSheet.Cells[row, 4]).Style = styleHeader;
                        ((Range)workSheet.Cells[row, 5]).Value = Entities.Constants.TestResult.Remarks;
                        ((Range)workSheet.Cells[row, 5]).Style = styleHeader;
                        row += 1;
                    }

                    ((Range)workSheet.Cells[row, 1]).Value = resultObj.StepNr;
                    ((Range)workSheet.Cells[row, 2]).Value = resultObj.Description;
                    ((Range)workSheet.Cells[row, 3]).Value = resultObj.Result;

                    styles = workbook.Styles;
                    ((Range)workSheet.Cells[row, 3]).Style = resultObj.Result == Entities.Constants.Pass
                        ? GetStyle(ReportingStyles.StylePassed, ref styles)
                        : GetStyle(ReportingStyles.StyleFailed, ref styles);
                    ((Range)workSheet.Cells[row, 4]).Value = resultObj.Comment.Length > 255
                        ? resultObj.Comment.Substring(1, 255)
                        : resultObj.Comment;
                    ((Range)workSheet.Cells[row, 5]).Value = resultObj.Remarks;
                    row += 1;
                }

                //// Autofit
                ((Range)workSheet.Cells[1, 1]).EntireColumn.AutoFit();
                ((Range)workSheet.Cells[1, 2]).EntireColumn.AutoFit();
                ((Range)workSheet.Cells[1, 3]).EntireColumn.AutoFit();
                ((Range)workSheet.Cells[1, 4]).EntireColumn.AutoFit();
                ((Range)workSheet.Cells[1, 5]).EntireColumn.AutoFit();
                ((Range)workSheet.Cells[1, 6]).EntireColumn.AutoFit();
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                LogHelper.ErrorLog(ex, Entities.Constants.ClassName.Reporting, MethodBase.GetCurrentMethod().Name);
                return(false);
            }
            finally
            {
                var b = workbook;
                if (b != null)
                {
                    workbook.Save();
                }

                WorkBookUtility.CloseWorkBook(workbook, true, errorMessage);
                WorkBookUtility.CloseExcel(applicationClass, errorMessage);
            }

            return(true);
        }
Beispiel #3
0
        /// <summary>
        /// This procedure will insert summary details and format the sheet.
        /// </summary>
        /// <returns>True or False.</returns>
        public static bool InsertSummaryDetailsAndFormat()
        {
            var      excelApp = new ApplicationClass();
            Workbook workbook = null;

            try
            {
                workbook = WorkBookUtility.OpenWorkBook(excelApp, FilePath);

                dynamic tcworksheet = (Worksheet)workbook.Sheets["TestIterations"];

                //// Set as active sheet
                tcworksheet.Activate();

                //// Set summary details
                ((Range)tcworksheet.Cells[1, 2]).Value = Timing.TotalStartTime.ToString("MM/dd/yyyy hh:mm:ss tt");
                ((Range)tcworksheet.Cells[2, 2]).Value = Timing.TotalEndTime.ToString("MM/dd/yyyy hh:mm:ss tt");
                ((Range)tcworksheet.Cells[3, 2]).Value = Timing.Totalduration.ToString();

                //// Set style for results, column 4 from row 6
                var     row    = 6;
                dynamic result = (Range)tcworksheet.Cells[row, 4];
                while (!string.IsNullOrEmpty(result.Value))
                {
                    //// Set style for result
                    if (result.Value == Entities.Constants.Pass)
                    {
                        var tmp = workbook.Styles;
                        result.Style = GetStyle(ReportingStyles.StylePassed, ref tmp);
                        ((Range)tcworksheet.Cells[row, 1]).EntireRow.AutoFit();
                        ((Range)tcworksheet.Cells[row, 1]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 2]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 3]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 4]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 5]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 6]).EntireRow.WrapText = false;
                    }
                    else if (result.Value == Entities.Constants.Fail)
                    {
                        var tmp = workbook.Styles;
                        result.Style = GetStyle(ReportingStyles.StyleFailed, ref tmp);
                        ((Range)tcworksheet.Cells[row, 1]).EntireRow.AutoFit();
                        ((Range)tcworksheet.Cells[row, 1]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 2]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 3]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 4]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 5]).EntireRow.WrapText = false;
                        ((Range)tcworksheet.Cells[row, 6]).EntireRow.WrapText = false;
                    }

                    row   += 1;
                    result = (Range)tcworksheet.Cells[row, 4];
                }

                //// Autofit all columns
                ((Range)tcworksheet.Cells[1, 1]).EntireColumn.AutoFit();
                ((Range)tcworksheet.Cells[1, 2]).EntireColumn.AutoFit();
                ((Range)tcworksheet.Cells[1, 3]).EntireColumn.AutoFit();
                ((Range)tcworksheet.Cells[1, 4]).EntireColumn.AutoFit();
                ((Range)tcworksheet.Cells[1, 5]).EntireColumn.AutoFit();
                ((Range)tcworksheet.Cells[1, 6]).EntireColumn.TextToColumns();
                ((Range)tcworksheet.Cells[1, 6]).EntireColumn.AutoFit();

                return(true);
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLog(ex, Entities.Constants.ClassName.Reporting, MethodBase.GetCurrentMethod().Name);
                throw;
            }
            finally
            {
                var b = workbook;
                if (b != null)
                {
                    workbook.Save();
                }
                //// Close objects
                if (workbook != null)
                {
                    WorkBookUtility.CloseWorkBook(workbook, true, string.Empty);
                }

                WorkBookUtility.CloseExcel(excelApp, string.Empty);
            }
        }
Beispiel #4
0
        /// <summary>
        /// This function creates a Excel sheet named as the current test case name in Excel report file.
        /// </summary>
        /// <param name="errorMessage">Error message set when error in creating excel.</param>
        /// <returns>True if able to create excel successfully, false otherwise.</returns>
        public static bool CreateExcelSheet(ref string errorMessage)
        {
            var      applicationClass = new ApplicationClass();
            Workbook workbook         = null;

            try
            {
                workbook = WorkBookUtility.OpenWorkBook(applicationClass, FilePath);
                var style = workbook.Styles;

                //// Check length of TestCase.Name
                if (TestCase.Name.Length > 31)
                {
                    //// Add message to reporting file, sheet "TestIterations"
                    dynamic workSheet = workbook.Worksheets[1];
                    ((Range)workSheet.Cells[6, 2]).Value = Entities.Constants.Messages.TestCaseNameLimit;
                    ((Range)workSheet.Cells[6, 4]).Value = Entities.Constants.Fail;

                    style = workbook.Styles;
                    ((Range)workSheet.Cells[6, 4]).Style = GetStyle(ReportingStyles.StyleFailed, ref style);
                    throw new Exception(Entities.Constants.Messages.TestCaseNameLimit);
                }

                //// Check if TestCase.Name already exist as a sheet because then the same testcase may be added several times in TestIterations.xlsx which is not allowed
                foreach (Worksheet workSheet in workbook.Worksheets)
                {
                    if (workSheet.Name == TestCase.Name)
                    {
                        dynamic workSheetNext = workbook.Worksheets[1];

                        ((Range)workSheetNext.Cells[6, 2]).Value = string.Format(
                            Entities.Constants.Messages.ReportAlreadyExist,
                            FilePath,
                            TestCase.Name);

                        ((Range)workSheetNext.Cells[6, 4]).Value = Entities.Constants.Fail;

                        style = workbook.Styles;
                        ((Range)workSheetNext.Cells[6, 4]).Style = GetStyle(ReportingStyles.StyleFailed, ref style);
                        throw new Exception(string.Format(Entities.Constants.Messages.ReportAlreadyExist, FilePath, TestCase.Name));
                    }
                }

                workbook.Worksheets.Add(After: workbook.ActiveSheet);
                var testCaseWorkSheet = (Worksheet)workbook.ActiveSheet;
                testCaseWorkSheet.Name = TestCase.Name;

                dynamic styleHeader = GetStyle(ReportingStyles.StyleHeader, ref style);
                ((Range)testCaseWorkSheet.Cells[1, 1]).Value = Entities.Constants.TestIteration.Application;
                ((Range)testCaseWorkSheet.Cells[1, 1]).Style = styleHeader;
                ((Range)testCaseWorkSheet.Cells[1, 2]).Value = TestCase.Application;
                ((Range)testCaseWorkSheet.Cells[2, 1]).Value = Entities.Constants.TestIteration.TestCaseName;
                ((Range)testCaseWorkSheet.Cells[2, 1]).Style = styleHeader;
                ((Range)testCaseWorkSheet.Cells[2, 2]).Value = TestCase.Name;
                ((Range)testCaseWorkSheet.Cells[3, 1]).Value = Entities.Constants.TestIteration.Description;
                ((Range)testCaseWorkSheet.Cells[3, 1]).Style = styleHeader;
                ((Range)testCaseWorkSheet.Cells[3, 2]).Value = TestCase.Description;

                return(true);
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                LogHelper.ErrorLog(ex, Entities.Constants.ClassName.Reporting, MethodBase.GetCurrentMethod().Name);

                return(false);
            }
            finally
            {
                var b = workbook;
                if (b != null)
                {
                    workbook.Save();
                }

                if (workbook != null)
                {
                    WorkBookUtility.CloseWorkBook(workbook, false, errorMessage);
                }

                WorkBookUtility.CloseExcel(applicationClass, errorMessage);
            }
        }
Beispiel #5
0
        /// <summary>
        /// This procedure will create the Excel report file.
        /// </summary>
        /// <param name="errorMessage">Error message.</param>
        /// <returns>File path is Null or empty.</returns>
        public static bool CreateExcelFile(ref string errorMessage)
        {
            var      applicationClass = new ApplicationClass();
            Workbook workbook         = null;

            try
            {
                //// Check if file already exist
                if (!string.IsNullOrEmpty(FilePath))
                {
                    return(true);
                }

                //// Create file
                var time = string.Empty + DateTime.Now.ToShortDateString().Replace('/', '-') + " " +
                           DateTime.Now.ToLongTimeString().Replace(':', '-') + string.Empty;

                PathString = Path.Combine(
                    TestCase.RootFilePath + Entities.Constants.TestReport + Entities.Constants.DoubleBackslash,
                    TestCase.TestReportFileNamePrefix + Entities.Constants.Underscore + time);

                Directory.CreateDirectory(PathString);
                FilePath =
                    new StringBuilder().Append(PathString)
                    .Append(Entities.Constants.DoubleBackslash)
                    .Append(TestCase.TestReportFileNamePrefix)
                    .Append(Entities.Constants.Space)
                    .Append(time)
                    .Append(Entities.Constants.Xlxs)
                    .ToString();

                workbook = applicationClass.Workbooks.Add();
                workbook.Worksheets.Add();
                dynamic workSheet = (Worksheet)workbook.ActiveSheet;
                workSheet.Name = Entities.Constants.WorkSheets.TestIterationsWrok;

                //// Remove all other sheets
                foreach (Worksheet sheet in workbook.Worksheets)
                {
                    if (sheet.Name != Entities.Constants.WorkSheets.TestIterationsWrok)
                    {
                        sheet.Delete();
                    }
                }

                //// Get style header
                var     style       = workbook.Styles;
                dynamic styleHeader = GetStyle(ReportingStyles.StyleHeader, ref style);

                //// Summary header
                ((Range)workSheet.Cells[1, 1]).Value = Entities.Constants.TestIteration.StartDateTime;
                ((Range)workSheet.Cells[1, 1]).Style = styleHeader;
                ((Range)workSheet.Cells[1, 2]).Value = Timing.TotalStartTime.ToString("MM/dd/yyyy hh:mm:ss tt");
                ((Range)workSheet.Cells[2, 1]).Value = Entities.Constants.TestIteration.EndDateTime;
                ((Range)workSheet.Cells[2, 1]).Style = styleHeader;
                ((Range)workSheet.Cells[2, 2]).Value = Timing.TotalEndTime.ToString("MM/dd/yyyy hh:mm:ss tt");
                ((Range)workSheet.Cells[3, 1]).Value = Entities.Constants.TestIteration.Duration;
                ((Range)workSheet.Cells[3, 1]).Style = styleHeader;
                ((Range)workSheet.Cells[3, 2]).Value = Timing.Totalduration.ToString();

                //// Test iterations header
                ((Range)workSheet.Cells[5, 1]).Value = Entities.Constants.TestIteration.Application;
                ((Range)workSheet.Cells[5, 1]).Style = styleHeader;
                ((Range)workSheet.Cells[5, 2]).Value = Entities.Constants.TestIteration.TestCaseName;
                ((Range)workSheet.Cells[5, 2]).Style = styleHeader;
                ((Range)workSheet.Cells[5, 3]).Value = Entities.Constants.TestIteration.TestCaseDescription;
                ((Range)workSheet.Cells[5, 3]).Style = styleHeader;
                ((Range)workSheet.Cells[5, 4]).Value = Entities.Constants.TestIteration.Result;
                ((Range)workSheet.Cells[5, 4]).Style = styleHeader;
                ((Range)workSheet.Cells[5, 5]).Value = Entities.Constants.TestIteration.Duration;
                ((Range)workSheet.Cells[5, 5]).Style = styleHeader;
                ((Range)workSheet.Cells[5, 6]).Value = Entities.Constants.TestIteration.DocumentReference;
                ((Range)workSheet.Cells[5, 6]).Style = styleHeader;

                return(true);
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                LogHelper.ErrorLog(ex, Entities.Constants.ClassName.Reporting, MethodBase.GetCurrentMethod().Name);
                return(false);
            }
            finally
            {
                //// Save file
                var b = workbook;
                if (b != null)
                {
                    workbook.SaveAs(FilePath, Type.Missing, string.Empty, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                }

                File.SetAttributes(FilePath, FileAttributes.Hidden);

                if (workbook != null)
                {
                    WorkBookUtility.CloseWorkBook(workbook, true, errorMessage);
                }

                WorkBookUtility.CloseExcel(applicationClass, errorMessage);
            }
        }