Das Problem
Es ist üblich, Testsuiten in einer hierarchischen Struktur unterzubringen, welche die verschiedene Testbereiche und Testzwecke
abbildet. In einigen Fällen werden Sie zum Beispiel die gesamte Anzahl von bestandenen, fehlgeschlagenen und nicht ausgeführten
Tests wissen möchten, um den Teststatus und somit die Qualität eines Testbereichs oder Testzwecks zu wissen.
Die Lösung
Verwenden Sie die Data-Mart Ansicht RV_ExecutionPlanStatusRollup um einen Bericht zu erstellen, der die Anzahl bestandener, fehlgeschlagener und nicht ausgeführter Tests für einen bestimmten
Testsuite-Ordner auflistet, gruppiert nach Build.
SELECT BuildName, PassedCount, FailedCount, NotExecutedCount
FROM RV_ExecutionPlanStatusRollup
WHERE ExecutionFolderID = ${executionPlanID|43|Execution Plan ID}
Die Abfrage macht Folgendes:
- Wählt BuildName und die Status-Anzahlen von der Ansicht RV_ExecutionPlanStatusRollup aus.
- Bestimmt den Order der höchsten Ebene, von dem Sie den Status (ExecutionFolderID) haben wollen.
Das Ergebnis der SQL-Abfrage zeigt den Status der Testläufe in allen Testsuiten des ausgewählten Ordners an, aggregiert pro
Build.
BuildName
|
PassedCount
|
FailedCount
|
NotExecutedCount
|
351
|
0
|
0
|
2
|
352
|
15
|
7
|
1
|
Sollten Sie an detaillierteren Informationen interessiert sein, beispielsweise an den Status-Anzahlen für jede Testsuite innerhalb
einer ausgewählten Hierarchie, können Sie die Data-Mart Ansicht
RV_ExecutionPlanStatusPerBuild verwenden:
SELECT eps.BuildName, eps.ExecutionPlanID, SUM(eps.PassedCount) PassedCount,
SUM(eps.FailedCount) FailedCount, SUM(eps.NotExecutedCount) NotExecutedCount
FROM RV_ExecutionPlanStatusPerBuild eps
INNER JOIN TM_ExecTreePaths etp ON eps.ExecutionPlanID = etp.NodeID_pk_fk
WHERE etp.ParentNodeID_pk_fk = ${execFolderID|44|Execution Folder ID}
GROUP BY eps.ExecutionPlanID, eps.BuildOrderNumber, eps.BuildName
ORDER BY eps.BuildOrderNumber, eps.ExecutionPlanID
Die Abfrage macht Folgendes:
- Verwendet die Ansicht RV_ExecutionPlanStatusPerBuild, um auf Testsuite-bezogenen Daten zuzugreifen (ExecutionPlanID und ExecutionPlanName). Die zuvor verwendete Ansicht RV_ExecutionPlanStatusRollup enthält voraggregierte Daten (zusammengezählte Daten), die zu diesem Zweck nicht geeignet sind, da Sie nicht nur die Ergebnisse
für Testsuiten liefert, sondern auch für Ordner-Knoten.
- Wählt alle Knoten eines bestimmten Ordners mittels JOIN der TM_ExecTreePath Tabelle aus, um die Hierarchieinformationen zu sammeln.
- Bestimmt den Ordner der höchsten Ebene mit ExecutionFolderID. Da die Tabelle TM_ExecutionTreePaths auch eine Selbstreferenz für jede Testsuite enthält, können Sie diese Abfrage auch für ParentNodeID_pk_fk mit einer Testsuite-ID ausführen, was die Reihen einer bestimmten Testsuite zurückgeben würde.
- Fügt ORDER BY BuildOrderNumber und ExecutionPlanID hinzu, um ein sauber geordnetes Ergebnis zu erhalten, beginnend mit dem ältesten Build und dessen Testsuiten.
Das Ergebnis der SQL-Abfrage liefert den Status der Testläufe in allen Testsuiten des ausgewählten Ordners.
BuildName
|
ExecutionPlanID
|
PassedCount
|
FailedCount
|
NotExecutedCount
|
351
|
2307
|
0
|
0
|
2
|
352
|
2184
|
11
|
2
|
0
|
352
|
2185
|
0
|
3
|
0
|
352
|
2186
|
2
|
1
|
0
|
352
|
2187
|
1
|
0
|
0
|
352
|
2191
|
0
|
1
|
0
|
352
|
2307
|
1
|
0
|
1
|