REPORT zglds_demo_template.
CLASS lcl_solution DEFINITION.
PUBLIC SECTION.
INTERFACES zif_glds_demo_test .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS lcl_solution IMPLEMENTATION.
METHOD zif_glds_demo_test~test_me.
* declarations
* implementation
ENDMETHOD.
ENDCLASS.
*"* use this source file for your ABAP unit test classes
CLASS lcl_test DEFINITION
INHERITING FROM zcl_glds_demo_test_units
FOR TESTING
RISK LEVEL HARMLESS
DURATION SHORT.
ENDCLASS.
DATA lv_class_local TYPE c LENGTH 100.
TRY.
DATA(lv_classname) = cl_abap_classdescr=>get_class_name( me ).
IF lv_classname(13) = '\PROGRAM=ZCL_'.
FIND REGEX '\\PROGRAM=([^=]+)' IN lv_classname SUBMATCHES lv_classname.
lv_classname = lv_classname(30).
ELSE.
lv_class_local = lv_classname.
"'\PROGRAM=ZGLDS_DEMO_TEMPLATE\CLASS=LCL_SOLUTION'.
REPLACE 'LCL_TEST' WITH 'LCL_SOLUTION' INTO lv_class_local.
lv_classname = lv_class_local.
ENDIF.
CREATE OBJECT me->mo_class_to_test_generic TYPE (lv_classname).
CATCH cx_root.
ENDTRY.
PROGRAM demo_generic_template.
CLASS demo DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS main RAISING cx_static_check cx_dynamic_check.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
* declarations
* implementation
ENDMETHOD.
ENDCLASS.
DATA aunit_result TYPE REF TO if_saunit_internal_result.
DATA cvrg_rslt_provider TYPE REF TO if_aucv_cvrg_rslt_provider.
DATA runner TYPE REF TO cl_aucv_test_runner_abstract.
runner = test_runner=>create( passport=>get( ) ).
runner->run_for_program_keys(
EXPORTING
i_limit_on_risk_level = if_aunit_attribute_enums=>c_risk_level-harmless
i_limit_on_duration_category = if_aunit_attribute_enums=>c_duration-short
i_program_keys = VALUE #( ( obj_name = program obj_type = 'PROG' ) )
IMPORTING
e_aunit_result = aunit_result
e_coverage_result = cvrg_rslt_provider ). " can be initial
CLASS test_runner DEFINITION
INHERITING FROM cl_aucv_test_runner_abstract.
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!i_passport TYPE REF TO object
RETURNING
VALUE(result) TYPE REF TO test_runner .
METHODS run_for_program_keys REDEFINITION .
METHODS run_for_test_class_handles REDEFINITION .
ENDCLASS.
CLASS test_runner IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Static Public Method ZCL_AUCV_TEST_RUNNER_ACP=>CREATE
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_PASSPORT TYPE REF TO OBJECT
* | [<-()] RESULT TYPE REF TO ZCL_AUCV_TEST_RUNNER_ACP
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD create.
DATA passport_name TYPE string.
passport_name = cl_abap_classdescr=>get_class_name( i_passport ).
CREATE OBJECT result.
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AUCV_TEST_RUNNER_ACP->RUN_FOR_PROGRAM_KEYS
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_LIMIT_ON_DURATION_CATEGORY TYPE SAUNIT_D_ALLOWED_RT_DURATION
* | [--->] I_LIMIT_ON_RISK_LEVEL TYPE SAUNIT_D_ALLOWED_RISK_LEVEL
* | [--->] I_PROGRAM_KEYS TYPE SABP_T_TADIR_KEYS
* | [<---] E_COVERAGE_RESULT TYPE REF TO IF_AUCV_CVRG_RSLT_PROVIDER
* | [<---] E_AUNIT_RESULT TYPE REF TO IF_SAUNIT_INTERNAL_RESULT
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD run_for_program_keys.
DATA:
tadir_key TYPE sabp_s_tadir_key,
factory TYPE REF TO cl_aunit_factory,
task TYPE REF TO if_aunit_task,
listener TYPE REF TO if_saunit_internal_listener.
listener = cl_saunit_gui_service=>create_listener( ).
CREATE OBJECT factory.
task = factory->create_task( listener ).
IF ( i_limit_on_risk_level IS NOT INITIAL ).
task->restrict_risk_level( i_limit_on_risk_level ).
ENDIF.
IF ( i_limit_on_duration_category IS NOT INITIAL ).
task->restrict_duration_category( i_limit_on_duration_category ).
ENDIF.
LOOP AT i_program_keys INTO tadir_key.
CASE tadir_key-obj_type.
WHEN 'CLAS'.
task->add_class_pool( tadir_key-obj_name ).
WHEN 'PROG'.
task->add_program( tadir_key-obj_name ).
WHEN 'FUGR'.
task->add_function_group( tadir_key-obj_name ).
WHEN OTHERS.
CONTINUE.
ENDCASE.
ENDLOOP.
task->run( if_aunit_task=>c_run_mode-catch_short_dump ).
e_aunit_result = listener->get_result_after_end_of_task( ).
ENDMETHOD.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZCL_AUCV_TEST_RUNNER_ACP->RUN_FOR_TEST_CLASS_HANDLES
* +-------------------------------------------------------------------------------------------------+
* | [--->] I_LIMIT_ON_DURATION_CATEGORY TYPE IF_AUNIT_TASK=>TY_D_DURATION_CATEGORY
* | [--->] I_LIMIT_ON_RISK_LEVEL TYPE IF_AUNIT_TASK=>TY_D_RISK_LEVEL
* | [--->] I_TEST_CLASS_HANDLES TYPE IF_AUNIT_TEST_CLASS_HANDLE=>TY_T_TESTCLASS_HANDLES
* | [--->] I_CUSTOM_DURATION TYPE IF_AUNIT_TASK=>TY_S_DURATION_SETTING(optional)
* | [--->] I_MODE TYPE IF_AUNIT_TASK=>TY_D_RUN_MODE (default =IF_AUNIT_TASK=>C_RUN_MODE-CATCH_SHORT_DUMP)
* | [--->] I_PACKAGES_TO_MEASURE TYPE STRING_SORTED_TABLE(optional)
* | [<---] E_COVERAGE_RESULT TYPE REF TO IF_AUCV_CVRG_RSLT_PROVIDER
* | [<---] E_AUNIT_RESULT TYPE REF TO IF_SAUNIT_INTERNAL_RESULT
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD run_for_test_class_handles.
DATA:
test_class_handle TYPE REF TO if_aunit_test_class_handle,
factory TYPE REF TO cl_aunit_factory,
task TYPE REF TO if_aunit_task,
listener TYPE REF TO if_saunit_internal_listener.
listener = cl_saunit_gui_service=>create_listener( ).
CREATE OBJECT factory.
task = factory->create_task( listener ).
IF ( i_limit_on_risk_level IS NOT INITIAL ).
task->restrict_risk_level( i_limit_on_risk_level ).
ENDIF.
IF ( i_limit_on_duration_category IS NOT INITIAL ).
TRY.
task->restrict_duration_category( i_limit_on_duration_category ).
CATCH cx_root. "EC *
ENDTRY.
ENDIF.
IF ( i_custom_duration IS NOT INITIAL ).
task->set_duration_limit( i_custom_duration ).
ENDIF.
LOOP AT i_test_class_handles INTO test_class_handle.
task->add_test_class_handle( test_class_handle ).
ENDLOOP.
task->run( i_mode ).
e_aunit_result = listener->get_result_after_end_of_task( ).
ENDMETHOD.
ENDCLASS.
CLASS passport DEFINITION FINAL CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS
get
RETURNING VALUE(result) TYPE REF TO passport.
ENDCLASS.
CLASS passport IMPLEMENTATION.
METHOD get.
CREATE OBJECT result.
ENDMETHOD.
ENDCLASS.
DATA task_data TYPE if_saunit_internal_rt_v3=>ty_s_task.
DATA task_result_casted TYPE REF TO cl_saunit_internal_result.
task_result_casted ?= aunit_result.
CALL FUNCTION '_SAUNIT_CREATE_CTRL_VIEWER_V3'
EXPORTING
task_data = task_result_casted->f_task_data
container = container3.
METHOD test_dummy.
cl_abap_unit_assert=>assert_equals(
exp = 1
act = 0
msg = |Don't worry - This test always fails to display all other results. |
level = if_aunit_constants=>tolerable ).
ENDMETHOD.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
7 | |
6 | |
5 | |
4 | |
4 | |
4 | |
4 | |
3 | |
2 | |
2 |