test-config.yaml.templateâĸ31.8 kB
# Template for MCP ABAP ADT test configuration
# Copy this file to test-config.yaml and fill in real values before running tests
#
# Tests are organized in groups with dependencies:
# 1. Transport -> 2. Package -> 3. Create -> 4. Update -> 5. Get -> 6. Delete
# Each object type uses the same object name across all operations
# ============================================================================
# TEST SETTINGS
# ============================================================================
test_settings:
fail_fast: false
verbose: true
retry_on_failure: false
max_retries: 1
cleanup_after_test: false
# Timeout configuration (in milliseconds)
# Can be overridden per operation type or per specific handler
timeouts:
default: 10000 # Default timeout for all operations (10 seconds)
# Operation-specific timeouts (low-level atomic operations)
create: 10000 # Create empty object (fast)
read: 10000 # Read object metadata/source (fast)
check: 10000 # Syntax check (fast)
lock: 10000 # Lock object (fast)
unlock: 10000 # Unlock object (fast)
update: 15000 # Update object content (medium - can be slower)
activate: 15000 # Activate object (medium - can be slower)
delete: 10000 # Delete object (fast)
# Handler-specific timeout overrides (optional)
# Uncomment and adjust if specific handlers need different timeouts
# create_class: 12000
# update_domain: 20000
# ============================================================================
# GROUP 1: TRANSPORT MANAGEMENT
# ============================================================================
# Step 1: Create transport request (used by all subsequent tests)
create_transport:
test_cases:
- name: "workbench_transport"
enabled: true
description: "Create a workbench transport request (required for package and transportable objects)"
params:
transport_type: "workbench"
description: "Test transport created via MCP for test suite"
owner: "<YOUR_RESPONSIBLE_USER>" # â ī¸ UPDATE WITH YOUR USERNAME (e.g., CB9980002377)
# target_system: "<YOUR_TARGET>" # Optional: if not provided or empty, uses "LOCAL"
# Step 2: Get transport (read created transport)
get_transport:
test_cases:
- name: "created_transport"
enabled: true
description: "Retrieve transport created by create_transport test"
params:
transport_number: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
include_objects: true
include_tasks: true
# ============================================================================
# GROUP 2: PACKAGE MANAGEMENT
# ============================================================================
# Step 1: Create package (uses transport from GROUP 1)
create_package:
test_cases:
- name: "test_package"
enabled: true
description: "Create test package (used by all object creation tests)"
params:
package_name: "<YOUR_PACKAGE_NAME>"
description: "Test package created via MCP for test suite"
super_package: "<YOUR_SUPER_PACKAGE>" # Use ZLOCAL OR $TMP for local packages
package_type: "development"
responsible: "<YOUR_RESPONSIBLE_USER>" # â ī¸ UPDATE WITH YOUR USER ID (e.g., CB9980002377)
# software_component: "<YOUR_SOFTWARE_COMPONENT>" # Optional - omit for local packages
# transport_layer: "<YOUR_TRANSPORT_LAYER>" # Optional - omit for local packages
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Optional - omit for local packages
application_component: ""
# Step 2: Get package (read created package)
get_package:
test_cases:
- name: "test_package"
enabled: true
params:
package_name: "<YOUR_PACKAGE_NAME>"
# ============================================================================
# GROUP 3: DOMAIN - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_DOMAIN_NAME> (used in all domain tests)
# Uses: package "<YOUR_PACKAGE_NAME>" + transport from GROUP 1
# Step 1: Create domain
create_domain:
test_cases:
- name: "test_domain"
enabled: true
description: "Create test domain (used in subsequent domain tests)"
params:
domain_name: "<YOUR_DOMAIN_NAME>"
description: "Test domain created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
datatype: "CHAR"
length: 50
decimals: 0
lowercase: false
sign_exists: false
# Step 2: Update domain
update_domain:
test_cases:
- name: "test_domain"
enabled: true
description: "Update test domain created in create_domain"
params:
domain_name: "<YOUR_DOMAIN_NAME>"
description: "Updated test domain description"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
datatype: "CHAR"
length: 60
decimals: 0
lowercase: false
sign_exists: false
# Step 3: Get domain
get_domain:
test_cases:
- name: "test_domain"
enabled: true
params:
domain_name: "<YOUR_DOMAIN_NAME>"
# Step 4: Delete domain (will be added to delete_object group)
# ============================================================================
# GROUP 4: DATA ELEMENT - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_DATA_ELEMENT_NAME> (used in all data element tests)
# Uses: domain "<YOUR_DOMAIN_NAME>" + package "<YOUR_PACKAGE_NAME>" + transport
# Step 1: Create data element
create_dataElement:
test_cases:
- name: "test_data_element"
enabled: true
description: "Create test data element (uses domain from GROUP 3)"
params:
data_element_name: "<YOUR_DATA_ELEMENT_NAME>"
description: "Test data element created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
domain_name: "<YOUR_DOMAIN_NAME>" # Uses domain from GROUP 3
data_type: "CHAR"
length: 50
decimals: 0
short_label: "TestLbl"
medium_label: "Test Field"
field_label_long: "Test Field Long Label"
field_label_heading: "Test Heading"
# Step 2: Update data element
update_dataElement:
test_cases:
- name: "test_data_element"
enabled: true
description: "Update test data element created in create_data_element"
params:
data_element_name: "<YOUR_DATA_ELEMENT_NAME>"
description: "Updated MCP data element"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
type_kind: "domain"
type_name: "<YOUR_DOMAIN_NAME>"
field_label_short: "Upd Test"
field_label_medium: "Updated Test Field"
field_label_long: "Updated Test Field Long Label"
field_label_heading: "Updated Test Heading"
# Step 3: Get data element
get_data_element:
test_cases:
- name: "test_data_element"
enabled: true
params:
data_element_name: "<YOUR_DATA_ELEMENT_NAME>"
# Step 4: Delete data element (will be added to delete_object group)
# ============================================================================
# GROUP 5: CLASS - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_CLASS_NAME> (used in all class tests)
# Uses: package "<YOUR_PACKAGE_NAME>" + transport
# Step 1: Create class
create_class:
test_cases:
- name: "test_class"
enabled: true
description: "Create test class (used in subsequent class tests)"
params:
class_name: "<YOUR_CLASS_NAME>"
description: "Test ABAP Class created via MCP ABAP ADT"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
superclass: ""
final: false
abstract: false
create_protected: false
source_code: |
CLASS <YOUR_CLASS_NAME> DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS: constructor.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS <YOUR_CLASS_NAME> IMPLEMENTATION.
METHOD constructor.
" Initialization logic here
WRITE: / 'Class instance created'.
ENDMETHOD.
ENDCLASS.
# Step 2: Update class source
update_class:
test_cases:
- name: "test_class"
enabled: true
description: "Update test class created in create_class"
params:
class_name: "<YOUR_CLASS_NAME>"
activate: true
source_code: |
CLASS <YOUR_CLASS_NAME> DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS:
constructor,
get_message RETURNING VALUE(rv_message) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS <YOUR_CLASS_NAME> IMPLEMENTATION.
METHOD constructor.
" Updated initialization logic
WRITE: / 'Class instance created - UPDATED'.
ENDMETHOD.
METHOD get_message.
rv_message = 'Updated message from MCP test'.
ENDMETHOD.
ENDCLASS.
# Step 3: Lock/unlock class
lock_class:
test_cases:
- name: "test_class"
enabled: true
description: "Lock and unlock test class"
params:
class_name: "<YOUR_CLASS_NAME>"
# Step 4: Get class
get_class:
test_cases:
- name: "test_class"
enabled: true
params:
class_name: "<YOUR_CLASS_NAME>"
# Step 4: Delete class
delete_class:
test_cases:
- name: "test_class"
enabled: true
description: "Delete test class (cleanup)"
params:
object_name: "<YOUR_CLASS_NAME>"
object_type: "CLAS/OC"
package_name: "<YOUR_PACKAGE_NAME>"
# Step 5: Run class (for classes that implement if_oo_adt_classrun)
run_class:
test_cases:
- name: "runnable_class"
enabled: true
description: "Create and run a class that implements if_oo_adt_classrun interface"
params:
class_name: "<YOUR_RUNNABLE_CLASS_NAME>"
description: "Test runnable ABAP Class via MCP ABAP ADT"
package_name: "<YOUR_PACKAGE_NAME>"
runnable: true
source_code: |
CLASS <YOUR_RUNNABLE_CLASS_NAME> DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS <YOUR_RUNNABLE_CLASS_NAME> IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
out->write( 'Hello from ADT Class Run!' ).
out->write( |System time: { cl_abap_context_info=>get_system_time( ) }| ).
out->write( 'Test runnable class executed successfully' ).
ENDMETHOD.
ENDCLASS.
# ============================================================================
# GROUP 6: PROGRAM - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_PROGRAM_NAME> (used in all program tests)
# Uses: package "<YOUR_PACKAGE_NAME>" + transport
# Step 1: Create program
create_program:
test_cases:
- name: "test_program"
enabled: true
description: "Create test program (used in subsequent program tests)"
params:
program_name: "<YOUR_PROGRAM_NAME>"
description: "Test ABAP Program created via MCP ABAP ADT"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
program_type: "1"
application: "*"
source_code: |
*&---------------------------------------------------------------------*
*& Report <YOUR_PROGRAM_NAME>
*& Test ABAP Program created via MCP ABAP ADT
*&---------------------------------------------------------------------*
REPORT <YOUR_PROGRAM_NAME>.
START-OF-SELECTION.
WRITE: / 'Program <YOUR_PROGRAM_NAME> executed successfully.'.
WRITE: / 'Created via MCP ABAP ADT API.'.
# Step 2: Update program source
update_program_source:
test_cases:
- name: "test_program"
enabled: true
description: "Update test program created in create_program"
params:
program_name: "<YOUR_PROGRAM_NAME>"
activate: true
source_code: |
*&---------------------------------------------------------------------*
*& Report <YOUR_PROGRAM_NAME>
*& UPDATED Test ABAP Program via MCP ABAP ADT
*&---------------------------------------------------------------------*
REPORT <YOUR_PROGRAM_NAME>.
START-OF-SELECTION.
WRITE: / 'Program <YOUR_PROGRAM_NAME> executed successfully - UPDATED'.
WRITE: / 'Updated via MCP ABAP ADT API.'.
WRITE: / 'Modification date:', sy-datum.
# Step 3: Get program
get_program:
test_cases:
- name: "test_program"
enabled: true
params:
program_name: "<YOUR_PROGRAM_NAME>"
# Step 4: Delete program (will be added to delete_object group)
# ============================================================================
# GROUP 7: INTERFACE - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_INTERFACE_NAME> (used in all interface tests)
# Uses: package "<YOUR_PACKAGE_NAME>" + transport
# Step 1: Create interface
create_interface:
test_cases:
- name: "test_interface"
enabled: true
description: "Create test interface (used in subsequent interface tests)"
params:
interface_name: "<YOUR_INTERFACE_NAME>"
description: "Test interface created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
source_code: |
INTERFACE <YOUR_INTERFACE_NAME>
PUBLIC.
METHODS test_method
IMPORTING
iv_param TYPE string
RETURNING
VALUE(rv_result) TYPE string.
ENDINTERFACE.
# Step 2: Update interface source
update_interface_source:
test_cases:
- name: "test_interface"
enabled: true
description: "Update test interface created in create_interface"
params:
interface_name: "<YOUR_INTERFACE_NAME>"
activate: true
source_code: |
INTERFACE <YOUR_INTERFACE_NAME>
PUBLIC.
METHODS:
test_method
IMPORTING
iv_param TYPE string
RETURNING
VALUE(rv_result) TYPE string,
get_status RETURNING VALUE(rv_status) TYPE string.
ENDINTERFACE.
# Step 3: Get interface
get_interface:
test_cases:
- name: "test_interface"
enabled: true
params:
interface_name: "<YOUR_INTERFACE_NAME>"
# Step 4: Delete interface (will be added to delete_object group)
# ============================================================================
# GROUP 8: TABLE - Create Operation
# ============================================================================
# Step 1: Create table
create_table:
test_cases:
- name: "test_table"
enabled: false
description: "Create test table (DDL-based)"
params:
table_name: "<YOUR_TABLE_NAME>"
package_name: "<YOUR_PACKAGE_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
ddl_code: |
@EndUserText.label : 'Test Table'
@AbapCatalog.tableCategory : #TRANSPARENT
define table <YOUR_TABLE_NAME_LOWER> {
key client : abap.clnt not null;
key id : abap.char(10);
name : abap.char(255);
created_at : abap.dats;
}
# ============================================================================
# GROUP 9: STRUCTURE - Create Operation
# ============================================================================
# Step 1: Create structure
create_structure:
test_cases:
- name: "test_structure"
enabled: false
description: "Create test structure"
params:
structure_name: "<YOUR_STRUCTURE_NAME>"
description: "Test structure created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
fields:
- name: "FIELD1"
description: "First field"
data_type: "CHAR"
length: 10
- name: "FIELD2"
description: "Second field"
data_type: "CHAR"
length: 20
# ============================================================================
# GROUP 10: VIEW - Create and Update Operations
# ============================================================================
# Step 1: Create view
create_view:
test_cases:
- name: "test_view"
enabled: false
description: "Create test CDS view"
params:
view_name: "<YOUR_VIEW_NAME>"
description: "Test CDS view created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
ddl_source: |
@AbapCatalog.sqlViewName: '<YOUR_VIEW_NAME>'
@EndUserText.label: 'Test CDS View'
define view <YOUR_VIEW_NAME>
as select from mara
{
matnr,
mbrsh,
mtart
}
# Step 2: Update view source
update_view_source:
test_cases:
- name: "test_view"
enabled: false
description: "Update test view created in create_view"
params:
view_name: "<YOUR_VIEW_NAME>"
activate: true
ddl_source: |
@AbapCatalog.sqlViewName: '<YOUR_VIEW_NAME>'
@EndUserText.label: 'Test CDS View Updated'
define view <YOUR_VIEW_NAME>
as select from mara
{
matnr,
mbrsh,
mtart,
meins
}
# ============================================================================
# GROUP 11: DELETE OBJECTS (Cleanup)
# ============================================================================
# Delete all objects created in previous groups (in reverse order)
delete_object:
test_cases:
- name: "delete_interface"
enabled: true
description: "Delete test interface from GROUP 7"
params:
test_interface_name: "<YOUR_INTERFACE_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
package_name: "<YOUR_PACKAGE_NAME>"
- name: "delete_program"
enabled: true
description: "Delete test program from GROUP 6"
params:
test_program_name: "<YOUR_PROGRAM_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
package_name: "<YOUR_PACKAGE_NAME>"
- name: "delete_class"
enabled: true
description: "Delete test class from GROUP 5"
params:
test_class_name: "<YOUR_CLASS_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
package_name: "<YOUR_PACKAGE_NAME>"
- name: "delete_data_element"
enabled: true
description: "Delete test data element from GROUP 4"
params:
test_data_element_name: "<YOUR_DATA_ELEMENT_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
package_name: "<YOUR_PACKAGE_NAME>"
- name: "delete_domain"
enabled: true
description: "Delete test domain from GROUP 3"
params:
test_domain_name: "<YOUR_DOMAIN_NAME>"
transport_request: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
package_name: "<YOUR_PACKAGE_NAME>"
- name: "delete_function_module"
enabled: true
description: "Delete test function module from GROUP 10 (MUST be before function_group)"
params:
test_function_module_name: "<YOUR_FUNCTION_MODULE_NAME>"
test_function_group_name: "<YOUR_FUNCTION_GROUP_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
package_name: "<YOUR_PACKAGE_NAME>"
- name: "delete_function_group"
enabled: true
description: "Delete test function group from GROUP 9 (deletes all FMs inside)"
params:
test_function_group_name: "<YOUR_FUNCTION_GROUP_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
package_name: "<YOUR_PACKAGE_NAME>"
# ============================================================================
# ADDITIONAL GET TESTS (Read-only, no dependencies)
# ============================================================================
# These tests read standard SAP objects (no creation required)
get_table:
test_cases:
- name: "standard_table"
enabled: true
params:
table_name: "MARA"
get_table_contents:
test_cases:
- name: "limited_rows"
enabled: true
params:
table_name: "T000"
max_rows: 10
# ============================================================================
# GROUP 12: FUNCTION GROUP - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_FUNCTION_GROUP_NAME> (used in all function group tests)
# Uses: package "<YOUR_PACKAGE_NAME>"
# Step 1: Create function group
create_function_group:
test_cases:
- name: "test_function_group"
enabled: true
description: "Create test function group (used in subsequent function group tests)"
params:
function_group_name: "<YOUR_FUNCTION_GROUP_NAME>"
description: "Test function group created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
# Step 2: Get function group (read created function group)
get_function_group:
test_cases:
- name: "test_function_group"
enabled: true
params:
function_group: "<YOUR_FUNCTION_GROUP_NAME>"
- name: "standard_function_group"
enabled: false
params:
function_group: "SRFC"
# ============================================================================
# GROUP 10: FUNCTION MODULE - Full CRUD Cycle
# ============================================================================
# Object name: <YOUR_FUNCTION_MODULE_NAME> (used in all function module tests)
# Uses: function group "<YOUR_FUNCTION_GROUP_NAME>" from GROUP 9
# Step 1: Create function module
create_function_module:
test_cases:
- name: "test_function_module"
enabled: true
description: "Create test function module (uses function group from GROUP 9)"
params:
function_module_name: "<YOUR_FUNCTION_MODULE_NAME>"
function_group_name: "<YOUR_FUNCTION_GROUP_NAME>"
description: "Test function module created via MCP"
package_name: "<YOUR_PACKAGE_NAME>"
# transport_request: "<YOUR_TRANSPORT_REQUEST>" # Not needed for local packages (ZLOCAL)
source_code: |
FUNCTION <YOUR_FUNCTION_MODULE_NAME_LOWERCASE>
IMPORTING
VALUE(IV_PARAM) TYPE STRING
EXPORTING
VALUE(EV_RESULT) TYPE STRING.
ev_result = |Result: { iv_param }|.
ENDFUNCTION.
# Step 2: Update function module source
update_function_module_source:
test_cases:
- name: "test_function_module"
enabled: true
description: "Update test function module created in create_function_module"
params:
function_module_name: "<YOUR_FUNCTION_MODULE_NAME>"
function_group_name: "<YOUR_FUNCTION_GROUP_NAME>"
activate: true
source_code: |
FUNCTION <YOUR_FUNCTION_MODULE_NAME_LOWERCASE>
IMPORTING
VALUE(IV_PARAM) TYPE STRING
EXPORTING
VALUE(EV_RESULT) TYPE STRING.
ev_result = |Updated Result: { iv_param }|.
ENDFUNCTION.
# Step 3: Get function module (read created function module)
get_function_test:
test_cases:
- name: "test_function_module"
enabled: true
params:
function_module_name: "<YOUR_FUNCTION_MODULE_NAME>"
function_group_name: "<YOUR_FUNCTION_GROUP_NAME>"
# Step 4: Get function (standard function for comparison)
get_function:
test_cases:
- name: "standard_function"
enabled: false
params:
function_name: "RFC_READ_TABLE"
function_group: "SRFC"
get_structure:
test_cases:
- name: "standard_structure"
enabled: true
params:
structure_name: "MARA" # Using table as structure example
get_include:
test_cases:
- name: "standard_include"
enabled: false
description: "Get include for program (S4HANA only, not available in Cloud)"
params:
include_name: "SAPMV45A" # Standard program include
program_name: "SAPMV45A"
get_type_info:
test_cases:
- name: "standard_type"
enabled: true
params:
type_name: "MARA"
type_kind: "TABL"
get_prog_full_code:
test_cases:
- name: "standard_function_group"
enabled: true
description: "Get full code for function group (Cloud compatible)"
params:
name: "SRFC"
type: "FUGR"
- name: "standard_program"
enabled: false
description: "Get full code for program (S4HANA only, not available in Cloud)"
params:
name: "SAPMV45A"
type: "PROG/P"
get_includes_list:
test_cases:
- name: "standard_function_group"
enabled: true
description: "Get includes list for function group (Cloud compatible)"
params:
object_name: "SRFC"
object_type: "FUGR"
detailed: false
- name: "standard_program"
enabled: false
description: "Get includes list for program (S4HANA only, not available in Cloud)"
params:
object_name: "SAPMV45A"
object_type: "PROG/P"
detailed: false
get_objects_list:
test_cases:
- name: "standard_function_group"
enabled: true
description: "Get objects list for function group (Cloud compatible)"
params:
parent_name: "SRFC"
parent_tech_name: "SRFC"
parent_type: "FUGR"
with_short_descriptions: true
- name: "standard_program"
enabled: false
description: "Get objects list for program (S4HANA only, not available in Cloud)"
params:
parent_name: "/CBY/PURBOOK_EN"
parent_tech_name: "/CBY/PURBOOK_EN"
parent_type: "PROG/P"
with_short_descriptions: true
get_object_structure:
test_cases:
- name: "standard_view"
enabled: true
params:
objecttype: "DDLS/DF"
objectname: "/CBY/ACQ_DDL"
get_transaction:
test_cases:
- name: "standard_transaction"
enabled: true
params:
transaction_code: "SE11"
get_enhancements:
test_cases:
- name: "class_enhancements"
enabled: true
description: "Get enhancements for class (Cloud compatible)"
params:
object_name: "CL_ABAP_TYPEDESCR"
object_type: "CLAS/OC"
- name: "program_enhancements"
enabled: false
description: "Get enhancements for program (S4HANA only, not available in Cloud)"
params:
object_name: "SAPMV45A"
object_type: "PROG/P"
get_sql_query:
test_cases:
- name: "simple_select"
enabled: true
params:
sql_query: "SELECT MANDT, MTEXT FROM T000 WHERE MANDT < '100'"
row_number: 10
# ============================================================================
# SEARCH AND UTILITY TESTS
# ============================================================================
search_object:
test_cases:
- name: "search_tables"
enabled: true
params:
object_name: "MARA*"
object_type: "TABL"
maxResults: 10
get_where_used:
test_cases:
- name: "table_usage"
enabled: true
params:
object_name: "MARA"
object_type: "TABL/DT"
detailed: false
get_object_info:
test_cases:
- name: "class_structure"
enabled: true
params:
parent_type: "CLAS/OC"
parent_name: "CL_ABAP_TYPEDESCR"
maxDepth: 2
enrich: true
get_abap_ast:
test_cases:
- name: "simple_code"
enabled: true
params:
code: |
REPORT test.
DATA: lv_text TYPE string.
lv_text = 'Hello World'.
WRITE: / lv_text.
get_abap_semantic_analysis:
test_cases:
- name: "with_symbols"
enabled: true
params:
code: |
REPORT test.
DATA: lv_count TYPE i,
lv_name TYPE string.
lv_count = 42.
lv_name = 'Test'.
# ============================================================================
# ACTIVATION AND CHECK TESTS
# ============================================================================
activate_object:
test_cases:
- name: "test_objects"
enabled: true
description: "Activate test class and program from GROUPS 5 and 6"
params:
objects:
- object_name: "<YOUR_CLASS_NAME>"
object_type: "CLAS/OC"
- object_name: "<YOUR_PROGRAM_NAME>"
object_type: "PROG/P"
preaudit: false
check_object:
test_cases:
- name: "check_test_objects"
enabled: true
description: "Check syntax of test objects"
params:
objects:
- object_name: "<YOUR_CLASS_NAME>"
object_type: "class"
version: "active"
- object_name: "<YOUR_PROGRAM_NAME>"
object_type: "program"
version: "active"
# ============================================================================
# ENVIRONMENT CONFIGURATION
# ============================================================================
environment:
default_package: "<YOUR_PACKAGE_NAME>" # Test package from GROUP 2
default_transport: "<YOUR_TRANSPORT_REQUEST>" # â ī¸ UPDATE WITH TRANSPORT FROM create_transport
default_system: "<YOUR_SYSTEM>" # â ī¸ UPDATE WITH YOUR SYSTEM (e.g., E19)
default_client: "<YOUR_CLIENT>" # â ī¸ UPDATE WITH YOUR CLIENT (e.g., 100)
# ============================================================================
# TEST EXECUTION SETTINGS
# ============================================================================
test_settings:
fail_fast: false
verbose: true
timeout: 30000
retry_on_failure: false
max_retries: 1
cleanup_after_test: false # Set to true to auto-delete objects after tests