示例#1
0
        private static void ConnectALMQCAndUpdateTestRuns(string testFolderPath, string testSetName, string Test_Name)
        {
            TDConnection qcConn;
            string       url = "https://abc.com";

            try
            {
                qcConn = new TDConnection();
                qcConn.InitConnection(url, almDomain, GeneralMethods.Decrypt(almPassword));
                qcConn.ConnectProject(almProjectName, almUserName, GeneralMethods.Decrypt(almPassword));
                //qcConn.InitConnectionEx(url);
                //qcConn.ConnectProjectEx(domain, projectName, userName, Password.Decrypt(KeyFunctions.GetConfigData("LAN.EncPassword"), userDomain + "-" + userName));
                ////qcConn.ConnectProjectEx(domain, projectName, userName, password, userDomain + "-" + userName));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return;
            }


            if (qcConn.ProjectConnected)
            {
                var testInfo  = new List <string>();
                var tsTreeMgr = (TestSetTreeManager)qcConn.TestSetTreeManager;
                var tsFolder  = (TestSetFolder)tsTreeMgr.get_NodeByPath(almFolderPath);
                //var tsFolder = (TestSetFolder)tsTreeMgr.get_NodeById(22703);
                //var tsFolder = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolderPath);
                var attchFactory = (AttachmentFactory)tsFolder.Attachments;
                //string testname1 = tsFolder.Name;
                //var set1 = tsFolder.get_Child(1);
                int nodeid = tsFolder.NodeID;
                var tsList = tsFolder.FindTestSets(testSetName, false, null);
                //var tsList = tsFolder.FindTestSets(testSetName, true,null);
                foreach (TestSet ts in tsList)
                {
                    var tstFolder     = (TestSetFolder)ts.TestSetFolder;
                    var tsTestFactory = (TSTestFactory)ts.TSTestFactory;
                    var mylist        = tsTestFactory.NewList("");
                    foreach (TSTest tsTest in mylist)
                    {
                        if (tsTest.Name.Equals(Test_Name))
                        {
                            var runFactory = (RunFactory)tsTest.RunFactory;

                            var run = (Run)runFactory.AddItem("AutRun_" + Reports.starttime);
                            run.CopyDesignSteps();

                            //runResult just tells me if overall my test run passes or fails - it's not built in. It was my way of tracking things though the code.
                            run.Status = almTestStatus;
                            run.Post();
                            AttachmentFactory      attachmentFactory = (AttachmentFactory)tsTest.Attachments;
                            TDAPIOLELib.Attachment attachment        = (TDAPIOLELib.Attachment)attachmentFactory.AddItem(System.DBNull.Value);
                            attachment.Description = "Attached Automation execution result";
                            attachment.Type        = 1;
                            if (almReportAttachmentType.ToLower() == "word" && Reports.isWordReport)
                            {
                                attachment.FileName = WordReport.reportpath;
                            }
                            if (almReportAttachmentType.ToLower() == "pdf" && Reports.isPdfReport)
                            {
                                attachment.FileName = PDFReport.reportpath;
                            }
                            attachment.Post();

                            StepFactory rsFactory      = (StepFactory)run.StepFactory;
                            dynamic     rdata_stepList = rsFactory.NewList("");
                            var         rstepList      = (TDAPIOLELib.List)rdata_stepList;
                            foreach (dynamic rstep in rstepList)
                            {
                                rstep.Status = almTestStatus;
                                rstep.Post();
                            }
                        }
                    }
                }
            }
        }