private void CreateTestInstance(TestSet ts, List <string> TestID) { TSTestFactory tsF = ts.TSTestFactory as TSTestFactory; foreach (string id in TestID) { TSTest TestInstance = tsF.AddItem(id) as TSTest; TestInstance.Post(); } }
public void CreateTestInstance(string TestSetFolderPath, string testsetName, List <string> TestID) { TestSet ts = CreateTestSet_Internal(TestSetFolderPath, testsetName); TSTestFactory tsF = ts.TSTestFactory as TSTestFactory; foreach (string id in TestID) { TSTest TestInstance = tsF.AddItem(id) as TSTest; TestInstance.Post(); } }
public static bool ExportBusinessFlowToQC(BusinessFlow businessFlow, TestSet mappedTestSet, string uploadPath, ObservableList <ExternalItemFieldBase> testSetFields, ref string result) { TestSet testSet; ObservableList <ActivitiesGroup> existingActivitiesGroups = new ObservableList <ActivitiesGroup>(); try { if (mappedTestSet == null) { //##create new Test Set in QC TestSetFactory TestSetF = (TestSetFactory)mTDConn.TestSetFactory; testSet = (TestSet)TestSetF.AddItem(System.DBNull.Value); //set the upload path TestSetTreeManager treeM = (TestSetTreeManager)mTDConn.TestSetTreeManager; ISysTreeNode testSetParentFolder = (ISysTreeNode)treeM.get_NodeByPath(uploadPath); testSet.TestSetFolder = testSetParentFolder.NodeID; } else { //##update existing test set //testSet = mappedTestSet; testSet = ImportFromQC.GetQCTestSet(mappedTestSet.ID.ToString()); TSTestFactory testsF = (TSTestFactory)testSet.TSTestFactory; List tsTestsList = testsF.NewList(""); foreach (TSTest tsTest in tsTestsList) { ActivitiesGroup ag = businessFlow.ActivitiesGroups.Where(x => (x.ExternalID == tsTest.TestId.ToString() && x.ExternalID2 == tsTest.ID.ToString())).FirstOrDefault(); if (ag == null) { testsF.RemoveItem(tsTest.ID); } else { existingActivitiesGroups.Add(ag); } } } //set item fields foreach (ExternalItemFieldBase field in testSetFields) { if (field.ToUpdate || field.Mandatory) { if (string.IsNullOrEmpty(field.SelectedValue) == false && field.SelectedValue != "NA") { testSet[field.ID] = field.SelectedValue; } else { try { testSet[field.ID] = "NA"; } catch { } } } } //post the test set testSet.Name = businessFlow.Name; try { testSet.Post(); } catch (Exception ex) { if (ex.Message.Contains("The Test Set already exists")) { result = "Cannot export " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + "- The Test Set already exists in the selected folder. "; Reporter.ToLog(eLogLevel.ERROR, result, ex); return(false); } //Searching for the testset in case it was created in ALM although getting exception TestSetFactory TSetFact = mTDConn.TestSetFactory; TDFilter tsFilter = TSetFact.Filter; TestSetTreeManager treeM = (TestSetTreeManager)mTDConn.TestSetTreeManager; ISysTreeNode testSetParentFolder = (ISysTreeNode)treeM.get_NodeByPath(uploadPath); try { tsFilter["CY_FOLDER_ID"] = "" + testSetParentFolder.NodeID + ""; } catch (Exception e) { tsFilter["CY_FOLDER_ID"] = "\"" + testSetParentFolder.Path.ToString() + "\""; Reporter.ToLog(eLogLevel.ERROR, $"Method - {MethodBase.GetCurrentMethod().Name}, Error - {e.Message}", e); } List TestsetList = TSetFact.NewList(tsFilter.Text); foreach (TestSet set in TestsetList) { if (set.Name == businessFlow.Name) { testSet = set; break; } } } businessFlow.ExternalID = testSet.ID.ToString(); //Add missing test cases TSTestFactory testCasesF = testSet.TSTestFactory; foreach (ActivitiesGroup ag in businessFlow.ActivitiesGroups) { if (existingActivitiesGroups.Contains(ag) == false && string.IsNullOrEmpty(ag.ExternalID) == false && ImportFromQC.GetQCTest(ag.ExternalID) != null) { TSTest tsTest = testCasesF.AddItem(ag.ExternalID); if (tsTest != null) { ag.ExternalID2 = tsTest.ID;//the test case instance ID in the test set- used for exporting the execution details } } else { foreach (ActivityIdentifiers actIdent in ag.ActivitiesIdentifiers) { ExportActivityAsTestStep(ImportFromQC.GetQCTest(ag.ExternalID), (Activity)actIdent.IdentifiedActivity); } } } return(true); } catch (Exception ex) { result = "Unexpected error occurred- " + ex.Message; Reporter.ToLog(eLogLevel.ERROR, "Failed to export the " + GingerDicser.GetTermResValue(eTermResKey.BusinessFlow) + " to QC/ALM", ex); return(false); } }
public int AddTest( int TestSetId, int TestConfigId, string[] Additional = default(string[]), bool RemoveTestOnUpdateFail = default(bool)) { int result = 0; try { if (!Connect(ServerUrl, Username, Password, Domain, Project)) { return(0); } //Get the test ID from the config factory TestConfigFactory TestConfigFact = tdc.TestConfigFactory; TestConfig TestConfig = TestConfigFact[TestConfigId]; int TestId = TestConfig.TestId; //API provides no way to add a specific test configuration to the test set //Instead we will add the test to the test set then remove the unneeded instances TestSetFactory TSFact = tdc.TestSetFactory; TestSet TestSet = TSFact[TestSetId]; TSTestFactory TSTestFact = TestSet.TSTestFactory; //Capture the starting list of tests in the test set List StartingTestList = TSTestFact.NewList(""); System.Collections.Generic.List <int> StartingTestInstanceList = new List <int>(); foreach (TSTest testInstance in StartingTestList) { StartingTestInstanceList.Add(int.Parse(testInstance.ID)); } //Add the test to the test set TSTestFact.AddItem(TestId); //Capture the new list of tests in the test set List EndingTestList = TSTestFact.NewList(""); System.Collections.Generic.List <int> EndingTestInstanceList = new List <int>(); foreach (TSTest testInstance in EndingTestList) { EndingTestInstanceList.Add(int.Parse(testInstance.ID)); } //Remove added tests that we don't want TSTest tempInstance, addedTestInstance = null; TestConfig tempConfig; foreach (int testInstanceId in EndingTestInstanceList) { if (!StartingTestInstanceList.Contains(testInstanceId)) { tempInstance = TSTestFact[testInstanceId]; tempConfig = tempInstance.TestConfiguration; if (!TestConfigId.Equals(tempConfig.ID)) { TSTestFact.RemoveItem(tempInstance.ID); } else { addedTestInstance = tempInstance; } } } result = int.Parse(addedTestInstance.ID); //Set additional field values if (Additional != default(string[])) { foreach (string fieldPair in Additional) { string[] tempFieldArray = fieldPair.Split(new[] { ";;" }, StringSplitOptions.None); addedTestInstance[tempFieldArray[0]] = tempFieldArray[1]; } addedTestInstance.Post(); } } catch (COMException ce) { rr.AddErrorLine(HandleException(ce)); if (RemoveTestOnUpdateFail && result > 0) { TSTestFactory fact = tdc.TSTestFactory; fact.RemoveItem(result); result = 0; } } Disconnect(); return(result); }