Example #1
0
        /// <summary>
        /// Opens a JUNIT report and adds its results to the Ranorex Report
        /// </summary>
        /// <param name="workdir">The directory where the report file is located</param>
        /// <param name="fileName">Name of the report file</param>
        public void ParseExtTestResults(string workdir, string fileName)
        {
            XmlDocument xdoc = new XmlDocument();

            try
            {
                xdoc.Load(workdir + fileName);

                XmlNode     xtestsuite = xdoc.SelectSingleNode("/testsuite");
                XmlNodeList testcases  = xdoc.SelectNodes("/testsuite/testcase");

                string sHead = string.Format("External Selenium Test completed. {0} out of {1} test cases successful",
                                             Int32.Parse(xtestsuite.Attributes["tests"].Value) - Int32.Parse(xtestsuite.Attributes["failures"].Value),
                                             Int32.Parse(xtestsuite.Attributes["tests"].Value));

                TestReport.BeginTestEntryContainer(1, "Selenium Test Suite (external)", ActivityExecType.Execute, TestEntryActivityType.TestCase);
                TestReport.BeginSmartFolderContainer("Selenium", sHead);

                Report.Info("Selenium", "Parsing Results...");


                foreach (XmlNode n in testcases)
                {
                    Ranorex.Core.Reporting.TestReport.BeginTestCaseContainer(n.Attributes["classname"].Value + "." + n.Attributes["name"].Value);
                    Ranorex.Core.Reporting.TestReport.BeginTestModule("Module " + n.Attributes["name"].Value);

                    if (n.SelectSingleNode("failure") != null)
                    {
                        Report.Failure("Selenium", "Test case " + n.Attributes["name"].Value + " (" + n.Attributes["classname"].Value + ") \n" +
                                       n.SelectSingleNode("failure").Attributes["message"].Value);

                        Ranorex.Core.Reporting.TestReport.EndTestModule();
                        Ranorex.Core.Reporting.TestReport.EndTestCaseContainer(TestResult.Failed);
                        continue;
                    }


                    Report.Success("Selenium", "Test case " + n.Attributes["name"].Value + " (" + n.Attributes["classname"].Value + ")");

                    Ranorex.Core.Reporting.TestReport.EndTestModule();
                    Ranorex.Core.Reporting.TestReport.EndTestCaseContainer(TestResult.Passed);
                }

                TestReport.EndTestCaseContainer();
                TestReport.EndTestEntryContainer();
            }
            catch (Exception e)
            {
                Report.Error("Selenium", "Error reading Results\n" + e.Message);
            }
        }
Example #2
0
        /// <summary>
        /// Performs the playback of actions in this module.
        /// </summary>
        /// <remarks>You should not call this method directly, instead pass the module
        /// instance to the <see cref="TestModuleRunner.Run(ITestModule)"/> method
        /// that will in turn invoke this method.</remarks>
        void ITestModule.Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;
            try
            {
                string testCaseName;

                string timestamp = System.DateTime.Now.ToString("yyyyMMdd") + "_" + System.DateTime.Now.ToString("hhmmss");

                //Read Driver Data sheet
                DataTable dt         = DataReader.ReadMyExcel(TestDataFilePath, "Driver_RanorexDemo");
                DataTable dtTestData = new DataTable();
                //Report Envirnment Setup
                ReportClass.ReportSetup("RanorexDemo", ResultFolderPath, timestamp);
                Ranorex.Controls.ProgressForm.Show();
                if (envDetails == "")
                {
                    //Read each Row in Driver_ClaimsCenter
                    foreach (DataRow dr in dt.Rows)
                    {
                        Dictionary <string, string> drDriverData = DataReader.LoadData(dr);

                        //Read Row needs to be executed
                        if (drDriverData["Execute"] == "Y")
                        {
                            testCaseName = drDriverData["TestCaseName"];
                            //--------------------------Test Suite Start
                            TestReport.BeginTestSuite("Ranorex Demo", "Comment");
                            //--------------------------Start Test Case
                            TestReport.BeginTestCaseContainer(testCaseName);
                            int iterationcount = Int32.Parse(drDriverData["Iteration"]);
                            int itcount        = 1;

                            //Read Rows from Test Data Sheet and get Test Script row count
                            dtTestData = DataReader.ReadMyExcel(TestDataFilePath, drDriverData["DataSheet"]);
                            DataRow[] filteredRows = dtTestData.Select("TestCaseNo='" + drDriverData["TestCaseNo"] + "'");
                            Dictionary <string, string> drTestData = DataReader.LoadData(filteredRows[0]);
                            //------------------------------Start individual Script iteration
                            if (iterationcount > 1)
                            {
                                String                test     = "Testing";
                                ActivityExecType      act      = ActivityExecType.RunIteration;
                                TestEntryActivityType tactivty = TestEntryActivityType.TestCase;
                                for (int j = 1; j <= iterationcount; j++)
                                {
                                    TestReport.BeginTestEntryContainer(j, test, act, tactivty);
//										(drDriverData["TestCaseName"],j,test,act,tactivty);
                                    TestReport.BeginTestModule(testCaseName);
                                    TestModuleRunner.Run(callTestCase(drDriverData["TestCaseName"], drTestData));
                                    TestReport.EndTestModule();
                                    TestReport.EndTestEntryIterationContainer();
                                    itcount++;
                                }
                            }
                            else
                            {
                                if (iterationcount == 1)
                                {
                                    TestReport.BeginTestModule(testCaseName);
                                    TestModuleRunner.Run(callTestCase(drDriverData["TestCaseName"], drTestData));
                                    TestReport.EndTestModule();
                                }
                            }
                            //End Test Case
                            TestReport.EndTestCaseContainer();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Report.Failure(ex.Message);
            }
        }