2015-01-29 2 views
0

Я пишу код VBA с помощью QC OTA, чтобы вытащить отчет о выполнении, необходимый для ежедневного отправки клиенту, есть ли способ найти количество тестовых наборов с папкой, чтобы я мог запускать цикл, чтобы найти общее количество пройденных, неудачных сценариев ? Сейчас я использую введенное вручную значение sTestSetCountКак найти количество тестовых наборов в папке с помощью VBA и QC OTA?

'Piece of the whole script 
For sCount = 1 To sTestSetCount 
    Set tsList = tsFolder.FindTestSets("P0049585") 
    Dim oTestSet: Set oTestSet = tsList.NewList("").Item(sCount).TsTestFactory 'Item(1) Refers to the 1st test set in the path 
    Dim testFilter1: Set testFilter1 = oTestSet.Filter 

    'To Filter by Passed status 
    testFilter1.Filter("TC_STATUS") = "Passed" 
    vPass = vPass + oTestSet.NewList(testFilter1.Text).Count 

    'To Filter by Failed Status 
    testFilter1.Filter("TC_STATUS") = "Failed" 
    vFail = vFail + oTestSet.NewList(testFilter1.Text).Count 

    'To Filter by No Run status 
    vNR = vNR + oTestSet.NewList("[Filter]{TableName:TESTCYCL,ColumnName:TC_STATUS,LogicalFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) & ",VisualFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) & ",NO_CASE:}").Count 

    'To Filter by Not Completed status 
    vNC = vNC + oTestSet.NewList("[Filter]{TableName:TESTCYCL,ColumnName:TC_STATUS,LogicalFilter:" & Chr(39) & "Not" & Chr(32) & "Completed" & Chr(39) & ",VisualFilter:" & Chr(39) & "Not" & Chr(32) & "Completed" & Chr(39) & ",NO_CASE:}").Count 

    'To Filter by N\A 
    testFilter1.Filter("TC_STATUS") = "N/A" 
    vNA = vNA + oTestSet.NewList(testFilter1.Text).Count 

    'To Filter by Blocked 
    testFilter1.Filter("TC_STATUS") = "Blocked" 
    vBlocked = vBlocked + oTestSet.NewList(testFilter1.Text).Count 

Next sCount 
Worksheets("Status").Range("C10").Value = vPass + vFail + vNR + vNC + vNA + vBlocked 
Worksheets("Status").Range("D10").Value = vPass 
Worksheets("Status").Range("E10").Value = vFail 
Worksheets("Status").Range("F10").Value = vNC 
Worksheets("Status").Range("G10").Value = vBlocked 
Worksheets("Status").Range("H10").Value = vNA 
Worksheets("Status").Range("H11").Value = (vPass + vFail)/(vPass + vFail + vNR + vNC + vBlocked) * 100 & " %" 
Application.StatusBar = "Execution Percentage = " & ((vPass + vFail)/(vPass + vFail + vNR + vNC + vBlocked) * 100) & "%" 

ответ

0

Просто получить TestSetFactory папки тестовой лаборатории и создать NewList без использования фильтра, чтобы получить все наборы тестов в этой папке:

treeMgr = tdc.TestSetTreeManager 
folder = treeMgr.NodeByPath("someTestLabPath") 
testSetFact = folder.TestSetFactory 
testSetList = testSetFact.NewList("") 
sTestSetCount = testSetList.Count 
0

Это утверждение поможет принять подсчет без тестового запуска случае, но если применить более фильтр на «нет запуска» тест case.then попробуйте ниже код

testFilter1.Filter("TC_STATUS") = "'No Run'" 

testFilter1.Filter("TS_STATUS") = "Complex" 

это поможет Вам фи в общем случае нет тестового примера запуска, и ни в одном из них, сколько тестовых случаев в комплексе.

vNR = vNR + oTestSet.NewList("[Filter]{TableName:TESTCYCL, 
ColumnName:TC_STATUS,LogicalFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) & 
",VisualFilter:" & Chr(39) & "No" & Chr(32) & "Run" & Chr(39) & 
",NO_CASE:}").Count 

Благодаря PT :)