I am trying to add a test set to a folder in testlab using a VB interface. I am able to add a folder successfully. When I try to add a test set, it fails with the exception 'ReleaseSemaphore failed'. I have searched the Internet for more information but there is very little and nothing that helped.
I am using ALM 11.52.580.0, Windows 7, and Visual Studio 12.0 Professional. I am working from code that I found in my search, but also referenced code and sections in the API reference. I have added a reference to the OTA COM Type Library to my project, so I am also working with the object explorer to help me figure things out.
I am new to using the API interface, so part of my difficulty may be that I do not know the appropriate question(s) to ask. Any help anyone can provide will be greatly appreciated! Thank you!
Private Sub cmdAddTest_Click(sender As Object, e As EventArgs) Handles cmdAddTest.Click
Dim ota As New OTAAPIActions
Dim dt As String = Now.Hour.ToString.PadLeft(2, "0"c) _
& Now.Minute.ToString.PadLeft(2, "0"c) _
& Now.Second.ToString.PadLeft(2, "0"c)
ota.AddTestLabFolder("SmokeTest" & dt)
ota.disconnect()
Thread.Sleep(500)
ota.AddTestSet("SmokeTest" & dt, "Test" & dt)
ota.disconnect()
End Sub
Public Function AddTestLabFolder(ByVal TestFolderName As String) As String
'Add tests to a Folder (say..."MainFolder") under Subject node in TestPlan
' connect to Quality Center
m_conn = New TDConnection
m_conn.InitConnectionEx("****")
m_conn.Login("****", "****")
m_conn.Connect("****", "****")
Dim TreeManager, root, folder1
' Add a Test Set Folder in Test Lab
TreeManager = m_conn.TestSetTreeManager
root = TreeManager.Root
folder1 = TreeManager.NodeByPath("Root\WebFastest Automation")
folder1.AddNode(TestFolderName) ' name of the Test Set Folder
root = Nothing
TreeManager = Nothing
MessageBox.Show("Added :" & "Root\WebFastest Automation\" & TestFolderName)
Return Nothing
End Function
Public Function AddTestSet(ByVal TestLabFolder As String, ByVal TestSetName As String)
m_conn = New TDConnection
m_conn.InitConnectionEx("****")
m_conn.Login("****", "****")
m_conn.Connect("****", "****")
'Dim testSetFolder As TestSetFolder = Nothing
Dim testSetFolderF As TestSetTreeManager = Nothing
'Dim testSetF As TestSetFactory
'Dim testSet1 As TestSet
Try
testSetFolderF = m_conn.TestSetTreeManager
Dim testSetFolder As TestSetFolder = testSetFolderF.NodeByPath("Root\WebFastest Automation")
Dim testSetFactory As TestSetFactory = testSetFolder.TestSetFactory
Dim testSet1 As TestSet = testSetFactory.AddItem(vbNull)
testSet1.Name = TestSetName
testSet1.status = "Open"
testSet1.Post()
testSet1.UnLockObject()
Return True
Catch ex As Exception
MessageBox.Show(ex.Message & "/" & ex.HResult.ToString, "AddTestSet", MessageBoxButtons.OK)
End Try
End Function