Requisito Utente
Partendo da una folder di Test Plan deve essere possibile inserire automaticamente un caso di test alle ultime cartelle dell'alberatura.
Soluzione Proposta
Creazione di un tasto nella sezione Test Plan che effettua creazione di un caso di test fittizio nelle ultime folder nel caso queste siano vuote.
______________________________________________________________________
Implementazione sul Prodotto
L'implementazione prevede la creazione di un nuovo pulsante nella sezione Test Plan che:
1. ActionCanExecute: richiamo Sub
Function ActionCanExecute(ActionName)
On Error Resume Next
Dim Res
Res = True
'supponiamo che la action richiamata dal pulsante sia act_CreaTest
if ActionName = "act_CreaTest" then
'richiamo sub in TestPlan
Test_CreazioneAutomatica
end if
ActionCanExecute = Res
On Error Goto 0
End Function
E' necessario dichiarare una variabile globale in common che rappresenta l'oggetto Folder in cui ci si è posizionati. Quindi dichiareremo nel common module all'inizio l'oggetto Folder_TP come segue
Dim Folder_TP
Inseriremo nella Sub MoveToSubject questa istruzione
Sub MoveToSubject(Subject)
On Error Resume Next
Set Folder_TP = Subject 'rendo Subject oggetto globale di modulo
On Error Goto 0
End Sub
Devo gestire anche la sua distruzione inserendo il codice:
set Folder_TP = Nothing
sia in Test_MoveTo (modulo Test Plan) che in ExitModule (modulo Common)
2. Sub in TestPlan.
Sub Test_CreazioneAutomatica
On Error Resume Next
Dim ListOfSons, MyCom, RecSet, MyTest
'controllo se ha almeno un figlio
if Folder_TP.Count > 0 then
'carico la lista dei figli/nipoti/ecc...
Set ListOfSons = objFlder_TP.FindChildren("",False,"")
'ciclo per ogni figlio
for each El_Fld in ListOfSons
'mi chiedo se la cartella è l'ultima (.Count<1)
'e non è Unattached
if El_Fld.Count < 1 And _
El_Fld.Name <> "Unattached" then
'quey per vedere se sotto la cartella
'non esistono tests
qry = "Select count(*) from test where ts_subject = " & El_Fld.NodeID
'creo oggetto Command per esecuzione query
set MyCom = TDConnection.Command
MyCom.CommandText = qry
'esecuzione query
set RecSet = MyCom.Execute
'mi posiziono all'inizio del RecordSet
RecSet.First
'Verifico che non esistano test sotto la folder
if RecSet.FieldValue(0) = 0 then
'creo il test
set MyTest = TDConnection.TestFactory.AddItem(Null)
MyTest.Name = "NomeTest"
MyTest.Type = "MANUAL"
MyTest.Field("TS_SUBJECT") = El_Fld.NodeID
'imposto tutti i dati obbligatori
MyTest.Field("TS_USER_01") = "Valore"
.....
MyTest.Post
MyTest.Refresh
set MyTest =
Nothing
end if
'distruggo gli oggetti
Set RecSet = Nothing
Set MyCom = Nothing
end if
next
set ListOfSons = Nothing
end if
'Effettuo Refresh
Actions.Action("act_filter_refresh").Execute
On Error Goto 0
End Sub