Show TOC

VorgehensweiseMessungen der Quelltextabdeckung zusammenführen Dieses Dokument in der Navigationsstruktur finden

Vorgehensweise

Sie können eine Gruppe von Messungen zusammenführen, um eine neue Messung anzulegen, die die zusammengeführten Messungen miteinander kombiniert.

Beispiel: Angenommen, Sie haben eine Gruppe von ähnlichen Messungen, die eigentlich zusammen gehören. Sie wollen eine einzige aggregierte Statistik zur Quelltextabdeckung für die Verwaltung auf einer höheren Ebene. Das Zusammenführen ermöglicht Ihnen diese aggregierte Ergebnis.

Sie können die zusammengeführte Messung genauso verwenden wie jede andere Messung - Sie können Ergebnisse daraus berechnen, sie im Repository sichern usw.

Das Zusammenführen kombiniert die Rohdaten der Messungen basierend auf einer der drei Strategien:

  • CE_SCV_MERGE_STRATEGY=>UNION: Legt eine Messung an, die die Quelltextabdeckung aller Programme in den zusammengeführten Messungen aggregiert. Beantwortet die Frage: “Was ist die Gesamtquelltextabdeckung, die sich aus meinen Messungen ergibt?”

  • CE_SCV_MERGE_STRATEGY=>INTERSECTION: Legt eine Messung an, die die Quelltextabdeckung aller Programme aggregiert, die während der beiden Messungen ausgeführt wurden. Beantwortet die Frage: "Was ist die Gesamtquelltextabdeckung der Objekte, die in beiden Messungen ausgeführt wurden?"

  • CE_SCV_MERGE_STRATEGY=>DIFFERENCE: Legt eine Messung an, die die Quelltextabdeckung aller Programme meldet, die während der ersten Messung und nicht in einer anderen der zusammengeführten Messungen ausgeführt wurden. Beantwortet die Frage: "Was ist die Quelltextabdeckung der Objekte, die nur in einer Messungen ausgeführt wurden?"

Voraussetzungen für das Kombinieren von Messungen:

  • Die Rohdaten aller Messungen, die zusammengeführt werden sollen, müssen noch verfügbar sein (nicht gelöscht oder finalisiert).

  • Die Messungen, die zusammengeführt werden sollen, wurden gestoppt (es werden keine Daten mehr gesammelt).

Sie können beliebig viele Messungen gleichzeitig zusammenführen.

Coding-Beispiel

Beispielquelltext für das Zusammenführen von Messungen:

Syntax Syntax

  1. * Source measurements 
    DATA: factory             TYPE REF TO if_scv_factory,
          users       TYPE if_scv_measurement=>users,
          measurement         TYPE REF TO if_scv_measurement,
          another_measurement TYPE REF TO if_scv_measurement.
    
    * Merging of measurements
    DATA: measurements       TYPE if_scv_measurement=>tab,
          merged_measurement TYPE REF TO if_scv_measurement.
    
    * Results
    DATA: result   TYPE REF TO if_scv_result,
          coverage TYPE REF TO if_scv_coverage,
          text     TYPE string.
    
    * Create two measurements and measure two test programs
    factory = cl_scv_coverage_api=>get_factory( ).
    
    APPEND sy-uname TO users.
    
    measurement = factory->create_measurement(
      i_local_server_only = abap_true
      i_users             = users ).
    
    another_measurement = factory->create_measurement(
      i_local_server_only = abap_true
      i_users             = users ).
    
    * First measurement
    measurement->start( ).
    SUBMIT rsdssmpl_performance AND RETURN.
    measurement->stop( ).
    
    * Second measurement
    another_measurement->start( ).
    SUBMIT rsdssmpl_status AND RETURN.
    another_measurement->stop( ).
    
    * Report the code coverage of the first measurement
    result = measurement->build_package_result( 'SMOI' ).
    coverage  = result->get_coverage( if_scv_coverage=>con_statement ).
    text = |Package SMOI has after measurement 1 a statement coverage of { coverage->get_percentage( ) }%|.
    WRITE:/ text.
    
    * Report the code coverage of the second measurement
    result = another_measurement->build_package_result( 'SMOI' ).
    coverage  = result->get_coverage( if_scv_coverage=>con_statement ).
    text = |Package SMOI has after measurement 2 a statement coverage of { coverage->get_percentage( ) }%|.
    WRITE:/ text.
    
    * Merge the measurements
    * Insert the measurements to be merged into a parameter table
    INSERT measurement INTO TABLE measurements.
    INSERT another_measurement INTO TABLE measurements.
    
    * Here are the constants for the supported merge strategies
    * CE_SCV_MERGE_STRATEGY=>UNION  Merge Coverage Measurements
    * CE_SCV_MERGE_STRATEGY=>INTERSECTION Intersect Coverage Measurements
    * CE_SCV_MERGE_STRATEGY=>DIFFERENCE Report Differences of Coverage Measurements
    
    * We use the UNION strategy to aggregate the code coverages
    merged_measurement = factory->merge_measurements(
      i_name         = 'myMerger'
      i_measurements = measurements
      i_strategy     = ce_scv_merge_strategy=>union ).
    
    * Report the merged code coverage
    result = merged_measurement->build_package_result( 'SMOI' ).
    coverage = result->get_coverage( if_scv_coverage=>con_statement ).
    text = |Object SMOI has a merged statement coverage of { coverage->get_percentage( ) }%|.
    WRITE: / text.
Ende des Quelltextes.

In diesem Beispiel werden zwei eigenständige Messungen kombiniert. Sie können jedoch auch Messungen in Messreihen zusammenführen. Sie können sogar zusammengeführte Messungen zusammenführen.