abapgit-agent 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +2 -0
  2. package/abap/guidelines/00_index.md +35 -0
  3. package/abap/guidelines/01_sql.md +72 -0
  4. package/abap/guidelines/02_exceptions.md +108 -0
  5. package/abap/guidelines/03_testing.md +252 -0
  6. package/abap/guidelines/04_cds.md +120 -0
  7. package/abap/guidelines/05_classes.md +50 -0
  8. package/abap/guidelines/06_objects.md +103 -0
  9. package/abap/guidelines/07_json.md +22 -0
  10. package/abap/guidelines/08_abapgit.md +193 -0
  11. package/bin/abapgit-agent +597 -44
  12. package/bin/abgagt +24 -0
  13. package/package.json +11 -3
  14. package/src/abap-client.js +65 -2
  15. package/src/agent.js +58 -4
  16. package/src/config.js +9 -2
  17. package/src/ref-search.js +989 -0
  18. package/.abapGitAgent.example +0 -11
  19. package/.github/workflows/release.yml +0 -57
  20. package/API.md +0 -710
  21. package/CLAUDE.md +0 -1031
  22. package/CLAUDE_MEM.md +0 -88
  23. package/ERROR_HANDLING.md +0 -30
  24. package/INSTALL.md +0 -155
  25. package/RELEASE_NOTES.md +0 -143
  26. package/abap/CLAUDE.md +0 -898
  27. package/abap/copilot-instructions.md +0 -79
  28. package/abap/package.devc.xml +0 -10
  29. package/abap/zcl_abgagt_agent.clas.abap +0 -420
  30. package/abap/zcl_abgagt_agent.clas.xml +0 -15
  31. package/abap/zcl_abgagt_cmd_factory.clas.abap +0 -48
  32. package/abap/zcl_abgagt_cmd_factory.clas.xml +0 -15
  33. package/abap/zcl_abgagt_command_create.clas.abap +0 -95
  34. package/abap/zcl_abgagt_command_create.clas.xml +0 -15
  35. package/abap/zcl_abgagt_command_import.clas.abap +0 -138
  36. package/abap/zcl_abgagt_command_import.clas.xml +0 -15
  37. package/abap/zcl_abgagt_command_inspect.clas.abap +0 -411
  38. package/abap/zcl_abgagt_command_inspect.clas.testclasses.abap +0 -121
  39. package/abap/zcl_abgagt_command_inspect.clas.xml +0 -16
  40. package/abap/zcl_abgagt_command_preview.clas.abap +0 -386
  41. package/abap/zcl_abgagt_command_preview.clas.xml +0 -15
  42. package/abap/zcl_abgagt_command_pull.clas.abap +0 -80
  43. package/abap/zcl_abgagt_command_pull.clas.testclasses.abap +0 -87
  44. package/abap/zcl_abgagt_command_pull.clas.xml +0 -16
  45. package/abap/zcl_abgagt_command_tree.clas.abap +0 -237
  46. package/abap/zcl_abgagt_command_tree.clas.xml +0 -15
  47. package/abap/zcl_abgagt_command_unit.clas.abap +0 -297
  48. package/abap/zcl_abgagt_command_unit.clas.xml +0 -15
  49. package/abap/zcl_abgagt_command_view.clas.abap +0 -240
  50. package/abap/zcl_abgagt_command_view.clas.xml +0 -15
  51. package/abap/zcl_abgagt_resource_create.clas.abap +0 -71
  52. package/abap/zcl_abgagt_resource_create.clas.xml +0 -15
  53. package/abap/zcl_abgagt_resource_health.clas.abap +0 -25
  54. package/abap/zcl_abgagt_resource_health.clas.xml +0 -15
  55. package/abap/zcl_abgagt_resource_import.clas.abap +0 -66
  56. package/abap/zcl_abgagt_resource_import.clas.xml +0 -15
  57. package/abap/zcl_abgagt_resource_inspect.clas.abap +0 -62
  58. package/abap/zcl_abgagt_resource_inspect.clas.xml +0 -15
  59. package/abap/zcl_abgagt_resource_preview.clas.abap +0 -67
  60. package/abap/zcl_abgagt_resource_preview.clas.xml +0 -15
  61. package/abap/zcl_abgagt_resource_pull.clas.abap +0 -71
  62. package/abap/zcl_abgagt_resource_pull.clas.xml +0 -15
  63. package/abap/zcl_abgagt_resource_tree.clas.abap +0 -70
  64. package/abap/zcl_abgagt_resource_tree.clas.xml +0 -15
  65. package/abap/zcl_abgagt_resource_unit.clas.abap +0 -64
  66. package/abap/zcl_abgagt_resource_unit.clas.xml +0 -15
  67. package/abap/zcl_abgagt_resource_view.clas.abap +0 -68
  68. package/abap/zcl_abgagt_resource_view.clas.xml +0 -15
  69. package/abap/zcl_abgagt_rest_handler.clas.abap +0 -32
  70. package/abap/zcl_abgagt_rest_handler.clas.xml +0 -15
  71. package/abap/zcl_abgagt_util.clas.abap +0 -93
  72. package/abap/zcl_abgagt_util.clas.testclasses.abap +0 -84
  73. package/abap/zcl_abgagt_util.clas.xml +0 -16
  74. package/abap/zcl_abgagt_viewer_clas.clas.abap +0 -58
  75. package/abap/zcl_abgagt_viewer_clas.clas.xml +0 -15
  76. package/abap/zcl_abgagt_viewer_ddls.clas.abap +0 -83
  77. package/abap/zcl_abgagt_viewer_ddls.clas.xml +0 -15
  78. package/abap/zcl_abgagt_viewer_dtel.clas.abap +0 -98
  79. package/abap/zcl_abgagt_viewer_dtel.clas.xml +0 -15
  80. package/abap/zcl_abgagt_viewer_factory.clas.abap +0 -41
  81. package/abap/zcl_abgagt_viewer_factory.clas.xml +0 -15
  82. package/abap/zcl_abgagt_viewer_intf.clas.abap +0 -58
  83. package/abap/zcl_abgagt_viewer_intf.clas.xml +0 -15
  84. package/abap/zcl_abgagt_viewer_stru.clas.abap +0 -59
  85. package/abap/zcl_abgagt_viewer_stru.clas.xml +0 -15
  86. package/abap/zcl_abgagt_viewer_tabl.clas.abap +0 -59
  87. package/abap/zcl_abgagt_viewer_tabl.clas.xml +0 -15
  88. package/abap/zcl_abgagt_viewer_ttyp.clas.abap +0 -93
  89. package/abap/zcl_abgagt_viewer_ttyp.clas.xml +0 -15
  90. package/abap/zif_abgagt_agent.intf.abap +0 -53
  91. package/abap/zif_abgagt_agent.intf.xml +0 -15
  92. package/abap/zif_abgagt_cmd_factory.intf.abap +0 -7
  93. package/abap/zif_abgagt_cmd_factory.intf.xml +0 -15
  94. package/abap/zif_abgagt_command.intf.abap +0 -26
  95. package/abap/zif_abgagt_command.intf.xml +0 -15
  96. package/abap/zif_abgagt_util.intf.abap +0 -28
  97. package/abap/zif_abgagt_util.intf.xml +0 -15
  98. package/abap/zif_abgagt_viewer.intf.abap +0 -12
  99. package/abap/zif_abgagt_viewer.intf.xml +0 -15
  100. package/docs/commands.md +0 -142
  101. package/docs/create-command.md +0 -129
  102. package/docs/health-command.md +0 -89
  103. package/docs/import-command.md +0 -195
  104. package/docs/init-command.md +0 -189
  105. package/docs/inspect-command.md +0 -158
  106. package/docs/preview-command.md +0 -528
  107. package/docs/pull-command.md +0 -188
  108. package/docs/status-command.md +0 -68
  109. package/docs/tree-command.md +0 -303
  110. package/docs/unit-command.md +0 -167
  111. package/docs/view-command.md +0 -501
  112. package/img/claude.png +0 -0
  113. package/scripts/claude-integration.js +0 -351
  114. package/scripts/release.sh +0 -60
  115. package/scripts/test-integration.js +0 -139
@@ -1,68 +0,0 @@
1
- # status Command Requirements
2
-
3
- ## Overview
4
-
5
- Check if ABAP integration is configured for the current repository.
6
-
7
- ## Command
8
-
9
- ```bash
10
- abapgit-agent status
11
- ```
12
-
13
- ## Tasks
14
-
15
- ### 1. Check Configuration File
16
-
17
- Check if `.abapGitAgent` exists in current directory:
18
-
19
- ```bash
20
- test -f .abapGitAgent
21
- ```
22
-
23
- ### 2. Display Status
24
-
25
- | Status | Output |
26
- |--------|--------|
27
- | Configured | `✅ ABAP Git Agent is ENABLED` with config location |
28
- | Not configured | `❌ ABAP Git Agent is NOT configured` |
29
-
30
- ---
31
-
32
- ## Output Examples
33
-
34
- ### Configured
35
-
36
- ```
37
- ✅ ABAP Git Agent is ENABLED
38
- Config location: /path/to/repo/.abapGitAgent
39
- ```
40
-
41
- ### Not Configured
42
-
43
- ```
44
- ❌ ABAP Git Agent is NOT configured
45
- ```
46
-
47
- ---
48
-
49
- ## Used By
50
-
51
- - `create` command - validates configuration exists before creating repo
52
-
53
- ## Related Files
54
-
55
- | File | Description |
56
- |------|-------------|
57
- | `.abapGitAgent` | Configuration file with ABAP connection details |
58
- | `.abapGitAgent.sample` | Template file |
59
-
60
- ---
61
-
62
- ## Example
63
-
64
- ```bash
65
- $ abapgit-agent status
66
- ✅ ABAP Git Agent is ENABLED
67
- Config location: /Users/user/project/.abapGitAgent
68
- ```
@@ -1,303 +0,0 @@
1
- # tree Command Requirements
2
-
3
- ## Overview
4
-
5
- Display the package hierarchy tree from an ABAP system, showing parent packages, sub-packages, and object counts.
6
-
7
- ## Command
8
-
9
- ```bash
10
- # Basic usage
11
- abapgit-agent tree --package $ZMY_PACKAGE
12
-
13
- # With object breakdown
14
- abapgit-agent tree --package $ZMY_PACKAGE --include-objects
15
-
16
- # Limit depth
17
- abapgit-agent tree --package $ZMY_PACKAGE --depth 3
18
-
19
- # JSON output for scripting (pure machine-readable)
20
- abapgit-agent tree --package $ZMY_PACKAGE --json
21
- ```
22
-
23
- ## Prerequisite
24
-
25
- - `.abapGitAgent` exists with valid credentials
26
- - Package must exist in the ABAP system
27
-
28
- ## Parameters
29
-
30
- | Parameter | Required | Description |
31
- |-----------|----------|-------------|
32
- | `--package` | Yes | ABAP package name (e.g., `$ZMY_PACKAGE`, `ZMY_PACKAGE`) |
33
- | `--depth` | No | Maximum depth to traverse (default: 3) |
34
- | `--include-objects` | No | Include object counts breakdown |
35
- | `--json` | No | Output raw JSON only (for scripting) |
36
-
37
- ---
38
-
39
- ## Tasks
40
-
41
- ### 1. Validate Parameters
42
-
43
- - `--package` must be specified
44
- - Package name must be valid (1-30 characters, start with letter or `$`)
45
-
46
- ### 2. Load Configuration
47
-
48
- Read `.abapGitAgent` for credentials
49
-
50
- ### 3. Fetch CSRF Token
51
-
52
- ```bash
53
- GET /health (with X-CSRF-Token: fetch)
54
- ```
55
-
56
- ### 4. Make Tree Request
57
-
58
- **Endpoint:** `POST /tree`
59
-
60
- **Request Body:**
61
- ```json
62
- {
63
- "package": "$ZMY_PACKAGE",
64
- "depth": 3,
65
- "include_objects": true
66
- }
67
- ```
68
-
69
- ### 5. Display Results
70
-
71
- ---
72
-
73
- ## Output
74
-
75
- ### Basic Tree
76
-
77
- ```
78
- 🌳 Package Tree: $ZMAIN_PACKAGE
79
-
80
- 📦 $ZMAIN_PACKAGE (Main Package)
81
- ├─ 📦 $ZMAIN_SUB1 (Sub Package 1)
82
- │ ├─ 📦 $ZMAIN_SUB1_A (Sub Package 1A)
83
- │ └─ 📦 $ZMAIN_SUB1_B (Sub Package 1B)
84
- └─ 📦 $ZMAIN_SUB2 (Sub Package 2)
85
- └─ 📦 $ZMAIN_SUB2_A (Sub Package 2A)
86
-
87
- 📊 Summary
88
- PACKAGES: 6
89
- OBJECTS: 127
90
- ```
91
-
92
- ### With Object Counts
93
-
94
- ```
95
- 🌳 Package Tree: $ZMAIN_PACKAGE
96
-
97
- 📦 $ZMAIN_PACKAGE (Main Package)
98
- ├─ 📦 $ZMAIN_SUB1 (Sub Package 1)
99
- │ ├─ 📦 $ZMAIN_SUB1_A (Sub Package 1A)
100
- │ └─ 📦 $ZMAIN_SUB1_B (Sub Package 1B)
101
- └─ 📦 $ZMAIN_SUB2 (Sub Package 2)
102
- └─ 📦 $ZMAIN_SUB2_A (Sub Package 2A)
103
-
104
- 📊 Summary
105
- PACKAGES: 6
106
- OBJECTS: 127
107
- TYPES: CLAS=10 INTF=2 PROG=11 FUGR=1 TABL=3
108
- ```
109
-
110
- ### With Parent Package
111
-
112
- ```
113
- 🌳 Package Tree: $ZMAIN_PACKAGE
114
-
115
- ⬆️ Parent: $ZSAP_BASE (SAP Base Package)
116
-
117
- 📦 $ZMAIN_PACKAGE (Main Package)
118
- └─ 📦 $ZMAIN_SUB1 (Sub Package 1)
119
-
120
- 📊 Summary
121
- PACKAGES: 2
122
- OBJECTS: 15
123
- TYPES: CLAS=5 PROG=10
124
- ```
125
-
126
- ### JSON Output
127
-
128
- ```json
129
- {
130
- "SUCCESS": true,
131
- "COMMAND": "TREE",
132
- "PACKAGE": "$ZMAIN_PACKAGE",
133
- "MESSAGE": "Tree retrieved successfully",
134
- "PARENT_PACKAGE": "$ZSAP_BASE",
135
- "NODES": [
136
- {
137
- "PACKAGE": "$ZMAIN_PACKAGE",
138
- "PARENT": "",
139
- "DESCRIPTION": "$ZMAIN_PACKAGE",
140
- "DEPTH": 0,
141
- "OBJECT_COUNT": 11
142
- },
143
- {
144
- "PACKAGE": "$ZMAIN_SUB1",
145
- "PARENT": "$ZMAIN_PACKAGE",
146
- "DESCRIPTION": "Sub Package 1",
147
- "DEPTH": 1,
148
- "OBJECT_COUNT": 10
149
- },
150
- {
151
- "PACKAGE": "$ZMAIN_SUB1_A",
152
- "PARENT": "$ZMAIN_SUB1",
153
- "DESCRIPTION": "Sub Package 1A",
154
- "DEPTH": 2,
155
- "OBJECT_COUNT": 3
156
- }
157
- ],
158
- "TOTAL_PACKAGES": 6,
159
- "TOTAL_OBJECTS": 127,
160
- "OBJECTS": [
161
- { "OBJECT": "CLAS", "COUNT": 10 },
162
- { "OBJECT": "INTF", "COUNT": 2 },
163
- { "OBJECT": "PROG", "COUNT": 11 },
164
- { "OBJECT": "FUGR", "COUNT": 1 },
165
- { "OBJECT": "TABL", "COUNT": 3 }
166
- ],
167
- "ERROR": ""
168
- }
169
- ```
170
-
171
- **Response Fields:**
172
-
173
- | Field | Type | Description |
174
- |-------|------|-------------|
175
- | `SUCCESS` | boolean | Whether the request succeeded |
176
- | `COMMAND` | string | Command name ("TREE") |
177
- | `PACKAGE` | string | Root package name |
178
- | `MESSAGE` | string | Status message |
179
- | `PARENT_PACKAGE` | string | Parent package (empty if root) |
180
- | `NODES` | array | Flat list of all packages with parent refs |
181
- | `TOTAL_PACKAGES` | number | Total packages in tree |
182
- | `TOTAL_OBJECTS` | number | Total objects in tree |
183
- | `OBJECTS` | array | Object counts by type [{OBJECT, COUNT}] |
184
- | `ERROR` | string | Error message (empty if success) |
185
-
186
- **Node Structure:**
187
-
188
- Each entry in `NODES` array:
189
-
190
- | Field | Type | Description |
191
- |-------|------|-------------|
192
- | `PACKAGE` | string | Package name |
193
- | `PARENT` | string | Parent package name |
194
- | `DESCRIPTION` | string | Package description |
195
- | `DEPTH` | number | Depth in tree (0 = root) |
196
- | `OBJECT_COUNT` | number | Objects in this package |
197
-
198
- **Note:** The `NODES` array is flat - children are identified by `PARENT` reference. The CLI builds the tree display by grouping nodes by depth and parent.
199
-
200
- ---
201
-
202
- ## Response Structure
203
-
204
- ### JSON Mode
205
-
206
- ```json
207
- {
208
- "SUCCESS": true,
209
- "COMMAND": "TREE",
210
- "PACKAGE": "$ZMAIN_PACKAGE",
211
- "MESSAGE": "Tree retrieved successfully",
212
- "PARENT_PACKAGE": "$ZSAP_BASE",
213
- "NODES": [...],
214
- "TOTAL_PACKAGES": 6,
215
- "TOTAL_OBJECTS": 127,
216
- "OBJECTS": [
217
- { "OBJECT": "CLAS", "COUNT": 10 },
218
- { "OBJECT": "INTF", "COUNT": 2 }
219
- ],
220
- "ERROR": ""
221
- }
222
- ```
223
-
224
- See [JSON Output](#json-output-pure-scripting) for full schema.
225
-
226
- ---
227
-
228
- ## Error Handling
229
-
230
- | Error | Message |
231
- |-------|---------|
232
- | Package not found | `Package <name> does not exist in the system` |
233
- | Invalid package name | `Invalid package name: <name>` |
234
- | Access denied | `Access denied to package information` |
235
- | Depth too large | `Depth value too large (max: 10)` |
236
-
237
- ### Error Output
238
-
239
- ```
240
- ❌ Package not found: $ZNONEXISTENT
241
-
242
- Error: Package $ZNONEXISTENT does not exist in the system.
243
- ```
244
-
245
- ---
246
-
247
- ## Example
248
-
249
- ```bash
250
- # Basic usage
251
- abapgit-agent tree --package $ZMY_PACKAGE
252
-
253
- # With object breakdown
254
- abapgit-agent tree --package $ZMY_PACKAGE --include-objects
255
-
256
- # Shallow tree (depth 1)
257
- abapgit-agent tree --package $ZMY_PACKAGE --depth 1
258
-
259
- # JSON for scripting
260
- abapgit-agent tree --package $ZMY_PACKAGE --json > tree.json
261
-
262
- # CI/CD usage with jq
263
- COUNT=$(abapgit-agent tree --package $ZMY_PACKAGE --json | jq '.TOTAL_OBJECTS')
264
- echo "Package contains $COUNT objects"
265
- ```
266
-
267
- ---
268
-
269
- ## Implementation
270
-
271
- ### ABAP Tables Used
272
-
273
- | Table | Purpose |
274
- |-------|---------|
275
- | **TDEVC** | Package definitions (contains `PARENTCL` for hierarchy) |
276
- | **TADIR** | Object directory (for object counts per package) |
277
-
278
- ### Query Logic
279
-
280
- ```abap
281
- " Get root package with parent
282
- SELECT SINGLE devclass parentcl FROM tdevc
283
- INTO ls_package
284
- WHERE devclass = lv_package.
285
-
286
- " Get direct sub-packages recursively (up to depth)
287
- SELECT devclass parentcl FROM tdevc
288
- INTO TABLE lt_direct_subs
289
- WHERE parentcl = iv_parent.
290
-
291
- " Get object count per package
292
- SELECT COUNT(*) FROM tadir
293
- INTO lv_count
294
- WHERE devclass = iv_package
295
- AND object NOT IN ('DEVC', 'PACK').
296
-
297
- " Get object counts by type
298
- SELECT object COUNT(*) AS count FROM tadir
299
- INTO TABLE lt_counts
300
- WHERE devclass = iv_package
301
- AND object NOT IN ('DEVC', 'PACK')
302
- GROUP BY object.
303
- ```
@@ -1,167 +0,0 @@
1
- # unit Command Requirements
2
-
3
- ## Overview
4
-
5
- Run AUnit tests for ABAP test classes and display detailed results.
6
-
7
- ## Command
8
-
9
- ```bash
10
- # Single test class file
11
- abapgit-agent unit --files zcl_my_test.clas.testclasses.abap
12
-
13
- # Multiple test class files
14
- abapgit-agent unit --files zcl_test1.clas.testclasses.abap,zcl_test2.clas.testclasses.abap
15
-
16
- # With path
17
- abapgit-agent unit --files abap/zcl_my_test.clas.testclasses.abap
18
- ```
19
-
20
- ## Prerequisite
21
-
22
- - `.abapGitAgent` exists with valid credentials
23
- - Files must be test class files (`.testclasses.abap`)
24
-
25
- ## Parameters
26
-
27
- | Parameter | Required | Description |
28
- |-----------|----------|-------------|
29
- | `--files` | Yes | Comma-separated list of test class files |
30
-
31
- ---
32
-
33
- ## Tasks
34
-
35
- ### 1. Validate Parameters
36
-
37
- - `--files` must be specified
38
- - Files must be `.testclasses.abap` format
39
-
40
- ### 2. Load Configuration
41
-
42
- Read `.abapGitAgent` for credentials
43
-
44
- ### 3. Fetch CSRF Token
45
-
46
- ```bash
47
- GET /health (with X-CSRF-Token: fetch)
48
- ```
49
-
50
- ### 4. Make Unit Request
51
-
52
- **Endpoint:** `POST /unit`
53
-
54
- **Request Body:**
55
- ```json
56
- {
57
- "files": ["ZCL_MY_TEST.CLASS.TESTCLASSES.ABAP"]
58
- }
59
- ```
60
-
61
- ### 5. Display Results
62
-
63
- ---
64
-
65
- ## Output
66
-
67
- ### All Tests Passed
68
-
69
- ```
70
- Running unit tests for 2 file(s)
71
-
72
- ✅ ZCL_MY_TEST - All tests passed
73
- Tests: 10 | Passed: 10 | Failed: 0
74
-
75
- ✅ ZCL_OTHER_TEST - All tests passed
76
- Tests: 5 | Passed: 5 | Failed: 0
77
- ```
78
-
79
- ### With Failures
80
-
81
- ```
82
- Running unit tests for 1 file(s)
83
-
84
- ❌ ZCL_MY_TEST - Tests failed
85
- Tests: 10 | Passed: 8 | Failed: 2
86
- ✗ ZCL_MY_TEST=>TEST_METHOD_1: Error description
87
- ✗ ZCL_MY_TEST=>TEST_METHOD_2: Another error
88
-
89
- Failed Tests:
90
- ────────────────────────────────────────────────────────────────────────────────
91
- ✗ ZCL_MY_TEST=>TEST_METHOD_1
92
- Error: Expected X but got Y
93
- ```
94
-
95
- ---
96
-
97
- ## Response Structure
98
-
99
- ```json
100
- {
101
- "success": "X",
102
- "message": "2 of 10 tests failed",
103
- "test_count": 10,
104
- "passed_count": 8,
105
- "failed_count": 2,
106
- "errors": [
107
- {
108
- "class_name": "ZCL_MY_TEST",
109
- "method_name": "TEST_METHOD_1",
110
- "error_kind": "ERROR",
111
- "error_text": "Expected X but got Y"
112
- }
113
- ]
114
- }
115
- ```
116
-
117
- ---
118
-
119
- ## Error Handling
120
-
121
- | Error | Message |
122
- |-------|---------|
123
- | File not found | `File not found: <path>` |
124
- | Invalid format | `Invalid file format: <file>` |
125
- | No --files specified | `Error: --files parameter required` |
126
- | No tests found | `➖ <class> - No unit tests` |
127
-
128
- ---
129
-
130
- ## File Format
131
-
132
- Test class files must end with `.testclasses.abap`:
133
-
134
- | File | Test Class |
135
- |------|------------|
136
- | `zcl_my_test.clas.testclasses.abap` | ZCL_MY_TEST |
137
- | `src/tests/zcl_my_test.clas.testclasses.abap` | ZCL_MY_TEST |
138
-
139
- ---
140
-
141
- ## Error Details
142
-
143
- When a test fails, output includes:
144
- - **Class**: The test class name
145
- - **Method**: Failed test method name (with `=>` notation)
146
- - **Error Kind**: Type of error (ERROR, FAILURE, etc.)
147
- - **Error Text**: Detailed error message from AUnit
148
-
149
- ---
150
-
151
- ## Example
152
-
153
- ```bash
154
- # Run tests
155
- abapgit-agent unit --files zcl_my_test.clas.testclasses.abap
156
-
157
- # Multiple
158
- abapgit-agent unit --files abap/zcl_test1.clas.testclasses.abap,abap/zcl_test2.clas.testclasses.abap
159
- ```
160
-
161
- ## Implementation
162
-
163
- Uses `CL_SUT_AUNIT_RUNNER` to execute tests:
164
- - `S_CREATE` - Create test runner
165
- - `run()` - Execute tests
166
- - `str_results` - Get test statistics
167
- - `tab_objects` - Get detailed results