Ein Auswahlobjekt ermöglicht es Ihnen, eine Gruppe von Anwendungskomponenten, Paketen und Programmen anzugeben, für die Sie die Quelltextabdeckung berechnen wollen. Verwenden Sie ein Auswahlobjekt mit der Methode IF_SCV_MEASUREMENT->BUILD_SELECTION_RESULT.
Der Vorteil bei der Verwendung von Auswahlobjekten ist, dass Sie die Gruppe von Entitäten nach Ihren Wünschen zusammenstellen können, für die Sie Ergebnisse der Quelltextabdeckung berechnen wollen. Sie können beispielsweise Ergebnisse für eine vollständige Anwendungskomponente erhalten, von denen Sie jedoch die Pakete ausschließen können, für die keine Ergebnisse erforderlich sind.
Mit einer Objektauswahl arbeiten - Eigenständige Messung
Nachfolgend wird erläutert, wie Sie eine Objektauswahl mit einer eigenständigen Messung verwenden. Dieses Quelltext-Snippet verwendet die INCLUDE- und EXCLUDE-Methoden von IF_SCV_SELECTION für das benutzerspezifische Festlegen der für eine Komponente berechneten Ergebnisse.
Sie instanziieren zunächst ein Auswahlobjekt. Die Auswahl wird wirksam, wenn Sie sie als ein Argument der Methode IF_SCV_MEASUREMENT->BUILD_SELECTION_RESULT bereitstellen.
* Customize the results with an object selection * An object must be created, as it is not initially present. DATA: factory TYPE REF TO if_scv_factory, selection TYPE REF TO if_scv_selection, result TYPE REF TO if_scv_result, display TYPE REF TO if_scv_result_display. factory = cl_scv_coverage_api=>get_factory( ). selection = factory->create_selection( ). * Include my main component selection->include_component( 'BC-CCM-MON' ). * But exclude this component - doesn't belong to me selection->exclude_component( 'BC-CCM-MON-SHM' ). * And exclude this package as well selection->exclude_package( 'SCSM' ). * And exclude this program too selection->exclude_program( 'S_TEST_FRAMEWORK' ). * Do some measuring of code coverage... * Calculate the results for the selected objects result = measurement->build_selection_result( i_selection = selection ). * Display the results in a graphical pop-up - * show_as_fullscreen also available display = cl_scv_coverage_ui=>get_result_display( result ). display->show_as_popup( ).
Mit einer Objektauswahl arbeiten - Messreihe
Sie können eine Auswahl als Standard einer Messreihe sichern. Wenn Sie eine Messreihe anlegen, führen Sie die folgenden Schritte aus, bevor Sie die Messreihe zum ersten Mal sichern:
Rufen Sie das Auswahlobjekt aus der Messreihe mit IF_SCV_SERIES->GET_SELECTION ab.
Legen Sie die Standardobjektauswahl für die Messreihe fest.
Wenn Sie die Messreihe sichern, wird die Auswahl ebenfalls gesichert. Die Messreihe übergibt die gesicherte Auswahl im Rahmen der Messreihe automatisch an IF_SCV_MEASUREMENT->BUILD_SELECTION_RESULT.
Nun können Sie die Berechnung der Ergebnisse in der Messreihe effizienter machen und standardisieren. Ein Methodenaufruf gibt die Standardgruppe der Ergebnisse zurück.
Zu diesem Zeitpunkt können Sie noch zusätzliche Ergebnisse in einer Messreihe berechnen. Sie können entweder die BUILD-Methoden aufrufen, die die Entitäten angeben, für die die Ergebnisse berechnet werden sollen. Oder Sie können das Standardobjekt der Messreihe durch ein anderes Auswahlobjekt ersetzen.
Weitere Details finden Sie unter Schritt 2: Standards für eine Messreihe setzen und Schritt 4: Ergebnisse der Quelltextabdeckung in einer Messreihe berechnen im Tutorial für Messreihen.
Objektauswahlmethoden
Nachfolgende werden Methoden beschrieben, mit denen Sie eine Objektauswahl Ihren Bedürfnissen anpassen können.
Eine leere Auswahl oder eine Auswahl, die nur Ausschlüsse angibt, wird nicht unterstützt. Diese Arten der Auswahl lösen eine Ausnahme des Typs CX_SCV_CALL_ERROR in IF_SCV_MEASUREMENT->BUILD_SELECTION_RESULT aus.
Verwenden Sie die folgenden Methoden für das Ein- oder Ausschließen einer einzelnen Komponente, eines Pakets oder eines Programms in einem Auswahlobjekt.
Methode von IF_SCV_SELECTION |
Verwendung |
exclude_component |
Schließt eine Anwendungskomponente in der Komponentenhierarchie von den Ergebnissen der Quelltextabdeckung aus. Beispiel: Wenn Sie Ergebnisse der Quelltextabdeckung für Objekte in der Komponente BC-CCM-MON erhalten wollen, können Sie exclude_component( i_name = 'BC-CCMS-MON-SHM' ) verwenden, um die SHM-Unterkomponente von BC-CCM-MON von den Ergebnissen auszuschließen. Objekte, die zu BC-CCM-MON-SHM gehören, werden ebenfalls von den Ergebnissen ausgeschlossen. |
exclude_package |
Schließt ein ABAP- Paket und seine Objekte von den Ergebnissen der Quelltextabdeckung aus. Beispiel: Wenn Sie Ergebnisse der Quelltextabdeckung für Objekte in der Komponente BC-CCM-MON erhalten wollen, können Sie exclude_package( i_name = 'SMOI' ) verwenden, um dieses Paket und seine Objekte von den Ergebnissen auszuschließen. |
exclude_program |
Schließt ein ABAP-Programm anhand des Namens von den Ergebnissen der Quelltextabdeckung aus. Für Class-Pools, Funktionsgruppen und Funktionsbausteine benötigt das API den vollständigen technischen Namen. Für eine Klasse ist dies der Name des Class-Pools, also nicht CL_CCMS_AL_DATA_ENVIRONMENT sondern CL_CCMS_AL_DATA_ENVIRONMENT===CP. Für eine Funktionsgruppe ist dies der Name des Function-Pools, also nicht SALK sondern SAPLSALK. Sie können den Funktionsbaustein RS_TADIR_TO_PROGNAME verwenden, um einen Objekteintrag ( ) in einen technischen Programmnamen zu übertragen. Zum Beispielt erhält der Objekttyp FUGR und Objektname SALK den Function-Pool-Namen SAPLSALK. |
include_component include_package include_program |
Schließt eine Komponente, ein Paket oder ein Programm und jede Unterkomponente in die Ergebnisse der Quelltextabdeckung mit ein. Weitere Details finden Sie unter EXCLUDE-Methoden im oben stehenden Abschnitt. |
Verwenden Sie die folgenden Methoden für das Ein- oder Ausschließen von Objekttypen in einem Auswahlobjekt.
Methode von IF_SCV_SELECTION |
Verwendung |
get_component_range get_package_range get_program_range |
Diese Methoden geben die Angaben im Auswahlobjekt für jede dieser Entitätkategorien zurück. Sie bemerken beispielsweise, dass eine Komponente mit einbezogen und eine Gruppe von Paketen ausgeschlossen werden sollte. |
get_root_components get_root_packages |
Diese Methoden überprüfen die Beziehungen in den Auswahlangaben und geben Angaben zur übergeordneten Komponente und zum Paket zurück. Beispiel: Wenn Sie angegeben haben, dass ein Auswahlobjekt die Komponenten BC-CCM-MON und BC-CCM-MON-SHM enthalten soll, gibt die Methode get_component_range die Angaben beider Komponenten zurück, wohingegen get_root_components nur die Angaben für BC-CCM-MON zurückgibt. |
set_component_range set_package_range set_program_range |
Mit diesen Methoden können Sie eine Gruppe von Objektauswahlangaben in ein Auswahlobjekt schreiben. Die Methoden verwenden als Parameter eine Ranges-Tabelle, mit der Sie flexibel Gruppen von Entitäten definieren können. |