@ohos-cpf/3rdloop 0.0.2 → 0.0.4
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.
- package/README.md +290 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-library-xts-coverage
|
|
3
|
-
description: 分析鸿蒙ArkTs原生库现有 XTS 测试用例对接口的覆盖情况。通过 analyze-xts-coverage.cjs 脚本一步完成接口提取、覆盖率匹配和 Markdown 报告生成。当需要对鸿蒙ArkTs原生库的 XTS 测试用例进行接口覆盖率分析时调用。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要Node.js运行环境
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.1.0"
|
|
8
|
-
category: ohos-testing
|
|
9
|
-
language: ArkTS/ETS
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# 鸿蒙ArkTs原生库 XTS 接口覆盖率分析
|
|
13
|
-
|
|
14
|
-
通过 `analyze-xts-coverage.cjs` 脚本一步完成接口提取、XTS 覆盖率匹配和 Markdown 报告生成,无需中间文件。
|
|
15
|
-
|
|
16
|
-
> ⚠️ **核心约束**:基于静态 import 和接口调用分析,动态调用(`obj[methodName]()`)无法识别。
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 任务参数
|
|
21
|
-
|
|
22
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
23
|
-
|------|------|------|------|
|
|
24
|
-
| `libroot` | string | ✅* | 库源码根目录路径(含 `library/` 和 `entry/src/ohosTest/`) |
|
|
25
|
-
| `spec` | string | ✅* | 已有的 interface-spec.json 路径(与 `libroot` 二选一) |
|
|
26
|
-
| `output` | string | ❌ | 输出 Markdown 报告路径,默认 `03-{库名}-XTS覆盖率报告.md` |
|
|
27
|
-
| `title` | string | ❌ | 报告标题 |
|
|
28
|
-
| `mode` | string | ❌ | 匹配模式: `auto`(默认) \| `ast` \| `regex` |
|
|
29
|
-
| `lib` | string | ❌ | 库名覆盖,默认从 spec 或源码中读取 |
|
|
30
|
-
|
|
31
|
-
> `libroot` 与 `spec` 至少提供一个。提供 `spec` 时跳过接口提取步骤直接使用;仅提供 `libroot` 时脚本自动从源码提取接口。
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 执行命令
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
node "{{workspaceRoot}}/MCP/scripts/analyze-xts-coverage.cjs" --libroot "{{libroot}}" [--output "{{output}}"] [--title "{{title}}"] [--mode auto|ast|regex] [--lib "{{库名}}"]
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
或从已有 interface-spec.json 生成:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
node "{{workspaceRoot}}/MCP/scripts/analyze-xts-coverage.cjs" --spec "{{spec}}" --libroot "{{libroot}}" [--output "{{output}}"]
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
其中 `{{workspaceRoot}}` = `3rdLibraryLoop` 工作区根目录。
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## 脚本自动完成
|
|
52
|
-
|
|
53
|
-
1. 从 `library/` 源码提取接口规格(或读取 `--spec` 指定的 JSON)
|
|
54
|
-
2. 递归扫描 `entry/src/ohosTest/` 下所有 `.ets` 和 `.ts` 测试文件
|
|
55
|
-
3. 提取 `import { ... } from 'lib'` 语句(单行/多行/别名/混合导入,兼容深层路径导入 `@pkg/name/src/main/ets/.../ClassName`)
|
|
56
|
-
4. AST/正则双层匹配:静态方法、实例方法(追踪变量声明)、链式调用、对象字面量属性
|
|
57
|
-
5. 直接渲染输出 Markdown 覆盖率报告
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## 库源码目录结构约定
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
{{libroot}}/
|
|
65
|
-
├── library/ ← 库源码(Index.ets 入口)
|
|
66
|
-
│ ├── Index.ets
|
|
67
|
-
│ ├── src/main/ets/
|
|
68
|
-
│ └── src/main/cpp/types/.../Index.d.ts ← Native .so 声明
|
|
69
|
-
└── entry/src/ohosTest/ ← XTS 测试源码(被分析的目录)
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## 输出
|
|
75
|
-
|
|
76
|
-
生成 Markdown 报告,包含以下章节:
|
|
77
|
-
- **基本信息**:库名、源文件数、生成时间
|
|
78
|
-
- **覆盖率总览**:方法级覆盖率百分比、S/N/M 统计、进度条
|
|
79
|
-
- **按接口类型统计**:method/property/field/function/variable 分类别覆盖率
|
|
80
|
-
- **类级覆盖率**:按类分组的覆盖明细
|
|
81
|
-
- **未覆盖接口详情**:按类分组的未覆盖接口清单
|
|
82
|
-
- **已覆盖接口详情**:按类分组的已覆盖接口清单(含覆盖来源文件)
|
|
83
|
-
- **文件覆盖详情**:每个 XTS 测试文件覆盖的接口数和接口列表
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## 注意事项
|
|
88
|
-
|
|
89
|
-
1. **确定性**:所有计数和匹配由脚本完成,同一组输入必定产生相同输出
|
|
90
|
-
2. **子目录排除**:自动排除扫描目录第一层的 `entryability/`、`model/`、`util/` 等子目录
|
|
91
|
-
3. **构造函数和枚举**:已在接口提取阶段排除
|
|
92
|
-
4. **动态调用限制**:`obj[methodName]()` 无法识别
|
|
93
|
-
5. **模式选择**:`auto` 优先 AST 匹配(需 TypeScript 模块),失败时降级正则;`ast` 强制 AST;`regex` 强制正则
|
|
94
|
-
6. **深层路径导入**:测试文件可能通过深层路径导入类(`import { X } from '@ohos/pkg/src/main/ets/.../X'`)而非包名导入,AST/正则匹配引擎与 AST 模块解析均已兼容
|
|
95
|
-
7. **入口文件大小写**:macOS/Windows 大小写不敏感文件系统上库入口文件可能为 `Index.ets` 或 `index.ets`,脚本已做大小写归一;否则模块解析会静默失败,导致类型推断全面失效、实例方法类覆盖率全部为 0
|
|
96
|
-
8. **结果合理性检查**:覆盖率 <5% 且测试代码总量 >500 行时脚本输出告警;此时必须先用 grep 盘点实例方法调用(`变量名.方法名(`)与静态方法调用(`类名.方法名(`)并按类对账,确认无匹配缺陷后再写入正式报告
|
|
97
|
-
9. **`--lib` 慎用**:传入短名(如 `mp3agic`)会覆盖 spec/oh-package.json5 推断的真实包名(`@ohos/mp3agic`),导致 import 匹配条件全部失效;无特殊需要不要覆盖库名
|
|
1
|
+
---
|
|
2
|
+
name: arkts-library-xts-coverage
|
|
3
|
+
description: 分析鸿蒙ArkTs原生库现有 XTS 测试用例对接口的覆盖情况。通过 analyze-xts-coverage.cjs 脚本一步完成接口提取、覆盖率匹配和 Markdown 报告生成。当需要对鸿蒙ArkTs原生库的 XTS 测试用例进行接口覆盖率分析时调用。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要Node.js运行环境
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.1.0"
|
|
8
|
+
category: ohos-testing
|
|
9
|
+
language: ArkTS/ETS
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 鸿蒙ArkTs原生库 XTS 接口覆盖率分析
|
|
13
|
+
|
|
14
|
+
通过 `analyze-xts-coverage.cjs` 脚本一步完成接口提取、XTS 覆盖率匹配和 Markdown 报告生成,无需中间文件。
|
|
15
|
+
|
|
16
|
+
> ⚠️ **核心约束**:基于静态 import 和接口调用分析,动态调用(`obj[methodName]()`)无法识别。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 任务参数
|
|
21
|
+
|
|
22
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
23
|
+
|------|------|------|------|
|
|
24
|
+
| `libroot` | string | ✅* | 库源码根目录路径(含 `library/` 和 `entry/src/ohosTest/`) |
|
|
25
|
+
| `spec` | string | ✅* | 已有的 interface-spec.json 路径(与 `libroot` 二选一) |
|
|
26
|
+
| `output` | string | ❌ | 输出 Markdown 报告路径,默认 `03-{库名}-XTS覆盖率报告.md` |
|
|
27
|
+
| `title` | string | ❌ | 报告标题 |
|
|
28
|
+
| `mode` | string | ❌ | 匹配模式: `auto`(默认) \| `ast` \| `regex` |
|
|
29
|
+
| `lib` | string | ❌ | 库名覆盖,默认从 spec 或源码中读取 |
|
|
30
|
+
|
|
31
|
+
> `libroot` 与 `spec` 至少提供一个。提供 `spec` 时跳过接口提取步骤直接使用;仅提供 `libroot` 时脚本自动从源码提取接口。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 执行命令
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
node "{{workspaceRoot}}/MCP/scripts/analyze-xts-coverage.cjs" --libroot "{{libroot}}" [--output "{{output}}"] [--title "{{title}}"] [--mode auto|ast|regex] [--lib "{{库名}}"]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
或从已有 interface-spec.json 生成:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
node "{{workspaceRoot}}/MCP/scripts/analyze-xts-coverage.cjs" --spec "{{spec}}" --libroot "{{libroot}}" [--output "{{output}}"]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
其中 `{{workspaceRoot}}` = `3rdLibraryLoop` 工作区根目录。
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 脚本自动完成
|
|
52
|
+
|
|
53
|
+
1. 从 `library/` 源码提取接口规格(或读取 `--spec` 指定的 JSON)
|
|
54
|
+
2. 递归扫描 `entry/src/ohosTest/` 下所有 `.ets` 和 `.ts` 测试文件
|
|
55
|
+
3. 提取 `import { ... } from 'lib'` 语句(单行/多行/别名/混合导入,兼容深层路径导入 `@pkg/name/src/main/ets/.../ClassName`)
|
|
56
|
+
4. AST/正则双层匹配:静态方法、实例方法(追踪变量声明)、链式调用、对象字面量属性
|
|
57
|
+
5. 直接渲染输出 Markdown 覆盖率报告
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 库源码目录结构约定
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
{{libroot}}/
|
|
65
|
+
├── library/ ← 库源码(Index.ets 入口)
|
|
66
|
+
│ ├── Index.ets
|
|
67
|
+
│ ├── src/main/ets/
|
|
68
|
+
│ └── src/main/cpp/types/.../Index.d.ts ← Native .so 声明
|
|
69
|
+
└── entry/src/ohosTest/ ← XTS 测试源码(被分析的目录)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 输出
|
|
75
|
+
|
|
76
|
+
生成 Markdown 报告,包含以下章节:
|
|
77
|
+
- **基本信息**:库名、源文件数、生成时间
|
|
78
|
+
- **覆盖率总览**:方法级覆盖率百分比、S/N/M 统计、进度条
|
|
79
|
+
- **按接口类型统计**:method/property/field/function/variable 分类别覆盖率
|
|
80
|
+
- **类级覆盖率**:按类分组的覆盖明细
|
|
81
|
+
- **未覆盖接口详情**:按类分组的未覆盖接口清单
|
|
82
|
+
- **已覆盖接口详情**:按类分组的已覆盖接口清单(含覆盖来源文件)
|
|
83
|
+
- **文件覆盖详情**:每个 XTS 测试文件覆盖的接口数和接口列表
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 注意事项
|
|
88
|
+
|
|
89
|
+
1. **确定性**:所有计数和匹配由脚本完成,同一组输入必定产生相同输出
|
|
90
|
+
2. **子目录排除**:自动排除扫描目录第一层的 `entryability/`、`model/`、`util/` 等子目录
|
|
91
|
+
3. **构造函数和枚举**:已在接口提取阶段排除
|
|
92
|
+
4. **动态调用限制**:`obj[methodName]()` 无法识别
|
|
93
|
+
5. **模式选择**:`auto` 优先 AST 匹配(需 TypeScript 模块),失败时降级正则;`ast` 强制 AST;`regex` 强制正则
|
|
94
|
+
6. **深层路径导入**:测试文件可能通过深层路径导入类(`import { X } from '@ohos/pkg/src/main/ets/.../X'`)而非包名导入,AST/正则匹配引擎与 AST 模块解析均已兼容
|
|
95
|
+
7. **入口文件大小写**:macOS/Windows 大小写不敏感文件系统上库入口文件可能为 `Index.ets` 或 `index.ets`,脚本已做大小写归一;否则模块解析会静默失败,导致类型推断全面失效、实例方法类覆盖率全部为 0
|
|
96
|
+
8. **结果合理性检查**:覆盖率 <5% 且测试代码总量 >500 行时脚本输出告警;此时必须先用 grep 盘点实例方法调用(`变量名.方法名(`)与静态方法调用(`类名.方法名(`)并按类对账,确认无匹配缺陷后再写入正式报告
|
|
97
|
+
9. **`--lib` 慎用**:传入短名(如 `mp3agic`)会覆盖 spec/oh-package.json5 推断的真实包名(`@ohos/mp3agic`),导致 import 匹配条件全部失效;无特殊需要不要覆盖库名
|
|
@@ -1,194 +1,194 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-library-xts-doc
|
|
3
|
-
description: 基于XTS覆盖率报告,为未覆盖接口自动判断可测试性并生成XTS用例描述文档。仅生成纯函数(无UI操作、可通过执行结果验证)的XTS用例描述,包含用例序号、名称、描述、预期结果、对应函数接口。当需要对鸿蒙原生库进行XTS覆盖率缺口填补、未覆盖接口测试规划时调用。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要XTS覆盖率报告(由ArkTsLibraryXTSCoverageSkill生成),需要文件写入权限到输出目录
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.0.0"
|
|
8
|
-
category: ohos-testing
|
|
9
|
-
language: ArkTS/ETS
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# 鸿蒙ArkTs原生库未覆盖接口XTS用例生成
|
|
13
|
-
|
|
14
|
-
读取XTS覆盖率报告中的未覆盖接口清单,自动判断接口可测试性,为可测试接口生成标准化XTS用例描述文档,100%覆盖所有未覆盖的可测试接口。
|
|
15
|
-
|
|
16
|
-
> ⚠️ **核心约束**:
|
|
17
|
-
> 1. 仅生成纯函数的XTS用例描述,不生成需要UI操作、无法通过执行结果验证的用例
|
|
18
|
-
> 2. 所有用例内容基于覆盖率报告中真实存在的接口签名和功能描述,严禁捏造
|
|
19
|
-
> 3. 100%覆盖所有未覆盖的可测试接口
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 任务参数
|
|
24
|
-
|
|
25
|
-
| 参数 | 类型 | 必填 | 说明 |
|
|
26
|
-
|------|------|------|------|
|
|
27
|
-
| `xtsCoverageReportPath` | string | ✅ | XTS覆盖率报告绝对路径(由ArkTsLibraryXTSCoverageSkill生成,含未覆盖接口清单及签名) |
|
|
28
|
-
| `outputDir` | string | ❌ | 输出目录,默认放置在覆盖率报告所在目录 |
|
|
29
|
-
|
|
30
|
-
### 输入异常处理
|
|
31
|
-
|
|
32
|
-
| 异常情况 | 处理方式 |
|
|
33
|
-
|---------|---------|
|
|
34
|
-
| 覆盖率报告不存在或无法读取 | 停止执行,向用户提示错误 |
|
|
35
|
-
| 未覆盖接口清单为空(覆盖率100%) | 生成空文档,标注"所有接口已覆盖,无需补充" |
|
|
36
|
-
| 无法确定库名称 | 使用默认命名 `Unknown未覆盖接口XTS用例描述.md` |
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## 输入依赖
|
|
41
|
-
|
|
42
|
-
- **前置SKILL**: `arkts-library-xts-coverage`(生成XTS覆盖率报告)
|
|
43
|
-
- **输入文件**: XTS覆盖率报告(`.md`格式,含未覆盖接口清单及签名)
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 工作流程概览
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
Phase 1: 读取覆盖率报告并提取未覆盖接口
|
|
51
|
-
↓
|
|
52
|
-
Phase 2: 接口可测试性判断
|
|
53
|
-
↓
|
|
54
|
-
Phase 3: XTS用例规划(正向+空值+异常+大数据)
|
|
55
|
-
↓
|
|
56
|
-
Phase 4: 生成XTS用例描述文档
|
|
57
|
-
↓
|
|
58
|
-
Phase 5: 文档验证与输出
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Phase 1:读取覆盖率报告并提取未覆盖接口
|
|
64
|
-
|
|
65
|
-
### 1.1 读取覆盖率报告
|
|
66
|
-
|
|
67
|
-
1. 使用 `read_file` 读取 `xtsCoverageReportPath` 全文
|
|
68
|
-
2. 提取库名称(用于输出文件命名)
|
|
69
|
-
3. 提取当前XTS覆盖率(用于概述中标注补充前后对比)
|
|
70
|
-
|
|
71
|
-
### 1.2 提取未覆盖接口清单
|
|
72
|
-
|
|
73
|
-
定位覆盖率报告「未覆盖接口清单」章节,提取每个未覆盖接口:
|
|
74
|
-
|
|
75
|
-
| 提取字段 | 来源列 | 用途 |
|
|
76
|
-
|---------|--------|------|
|
|
77
|
-
| 接口名称 | `方法/属性` 列 | 用例命名 |
|
|
78
|
-
| 完整签名 | `签名` 列 | 用例预期结果中标注精确调用方式 |
|
|
79
|
-
| 接口类型 | `类型` 列 | 可测试性判断依据 |
|
|
80
|
-
| 功能描述 | `功能描述` 列 | 用例描述的依据 |
|
|
81
|
-
| 所属类 | `### {ClassName}` 子标题 | 分组依据 |
|
|
82
|
-
|
|
83
|
-
> 覆盖率报告的未覆盖清单用于**索引**(确定要补充的接口及分组);报告中字段不完整或与规格不一致时,**精确参数类型/返回类型/枚举值一律以 `interface-spec.json` 为权威来源补全**,不得凭报告文本猜测或按函数名推断签名。
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Phase 2:接口可测试性判断
|
|
88
|
-
|
|
89
|
-
### 2.1 判断标准(摘要)
|
|
90
|
-
|
|
91
|
-
- **✅ 可测试**:纯函数、无UI操作、结果可验证、无不可控外部依赖
|
|
92
|
-
- **❌ 不可测试**:涉及UI操作、依赖不可控外部因素、结果不可验证、纯展示型、`private`/`protected` 成员、`public static readonly` 常量
|
|
93
|
-
- **⚠️ 需额外条件**:依赖Mock/异步等待/前置状态的接口,可测但需在用例中标注前提条件
|
|
94
|
-
|
|
95
|
-
> 完整判断标准、接口类型测试规则、分类示例参见 [可测试性判断指南](references/TESTABILITY_GUIDE.md)
|
|
96
|
-
|
|
97
|
-
### 2.2 接口分类标记
|
|
98
|
-
|
|
99
|
-
对每个未覆盖接口进行分类标记:`✅ 可测试`、`❌ 不可测试`、`⚠️ 可测试(需额外条件)`。
|
|
100
|
-
|
|
101
|
-
对于 `⚠️ 可测试(需额外条件)` 的接口,在用例描述中注明测试前提条件(如需要Mock网络请求)。
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Phase 3:XTS用例规划
|
|
106
|
-
|
|
107
|
-
### 3.1 设计原则(摘要)
|
|
108
|
-
|
|
109
|
-
- 每个可测试接口至少有1个**正向用例**
|
|
110
|
-
- 每个可测试接口至少有1个**空值/null输入用例**
|
|
111
|
-
- 每个可测试接口至少有1个**异常/边界值用例**
|
|
112
|
-
- 集合类型参数接口至少有1个**大数据量用例**
|
|
113
|
-
- 一个用例可包含多个关联接口(展示协同使用方式)
|
|
114
|
-
|
|
115
|
-
### 3.2 多接口用例设计
|
|
116
|
-
|
|
117
|
-
将多个接口放在同一用例中的条件:
|
|
118
|
-
- 接口之间存在调用依赖关系(如 `init` → `execute` → `getResult`)
|
|
119
|
-
- 接口协同完成一个完整功能流程(如 `create` → `configure` → `start`)
|
|
120
|
-
- 接口之间存在状态变化关系(如 `setConfig` → `getConfig` 验证)
|
|
121
|
-
|
|
122
|
-
### 3.3 跨接口综合场景设计
|
|
123
|
-
|
|
124
|
-
正向/空值/异常/大数据之外,还应设计四类**跨接口综合场景**:
|
|
125
|
-
1. **空值/异常边界综合**:将多个接口的空值、异常、边界输入组合进同一用例,验证错误处理的一致性
|
|
126
|
-
2. **大数据综合**:对集合/字符串类接口的数据处理链路(输入→处理→输出)组合验证
|
|
127
|
-
3. **端到端流程综合**:串联存在调用依赖的接口,模拟真实业务流程(初始化→配置→调用→清理)
|
|
128
|
-
4. **状态机综合**:对存在状态流转的接口按状态顺序验证(未初始化→初始化→运行→停止→销毁)
|
|
129
|
-
|
|
130
|
-
综合场景优先复用 3.2 中已建立关联的接口组,避免为每个接口单独堆叠低价值用例。
|
|
131
|
-
|
|
132
|
-
### 3.4 用例编号规则
|
|
133
|
-
|
|
134
|
-
- 用例序号采用三位补零格式:`001`、`002`、`003`...
|
|
135
|
-
- 序号按模块分组递增,便于管理
|
|
136
|
-
|
|
137
|
-
> 详细的场景设计规范(空值、异常、大数据、Mock、异步等待)参见 [可测试性判断指南](references/TESTABILITY_GUIDE.md) 和 [用例模板与编写规范](references/TEMPLATE.md)
|
|
138
|
-
|
|
139
|
-
### 3.5 用例计数约束调和
|
|
140
|
-
|
|
141
|
-
当下游存在「用例场景数 ≥ 接口覆盖数」的计数约束(即报告要求 `用例数 ≥ 已覆盖接口数`)时:
|
|
142
|
-
- **setter/getter 配对接口不合并为单用例**(每个接口各计 1 条用例),以保证接口数与用例数匹配
|
|
143
|
-
- 或通过 **3.3 跨接口综合场景**补足差额(综合场景一条用例计 1,便于补齐接口数)
|
|
144
|
-
- 若接口数明显大于用例场景容量,优先拆分多接口用例,保证每接口至少 1 条用例
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Phase 4:生成XTS用例描述文档
|
|
149
|
-
|
|
150
|
-
### 4.1 文档结构
|
|
151
|
-
|
|
152
|
-
生成的文档包含以下章节:
|
|
153
|
-
|
|
154
|
-
1. **概述** — 库名称、生成时间、覆盖率前后对比、用例统计
|
|
155
|
-
2. **接口可测试性分析** — 可测试/不可测试/需额外条件接口列表
|
|
156
|
-
3. **用例索引表** — 全部用例的序号、名称、涉及接口、模块归属
|
|
157
|
-
4. **XTS用例详细描述** — 每个用例的描述、预期结果、对应函数接口
|
|
158
|
-
|
|
159
|
-
### 4.2 文件命名与存放
|
|
160
|
-
|
|
161
|
-
```
|
|
162
|
-
文件命名规则:{库名}未覆盖接口XTS用例描述.md
|
|
163
|
-
存放位置:覆盖率报告所在目录(或指定 outputDir)
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
> 完整文档模板参见 [用例模板与编写规范](references/TEMPLATE.md)
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Phase 5:文档验证与输出
|
|
171
|
-
|
|
172
|
-
### 5.1 验证检查项
|
|
173
|
-
|
|
174
|
-
1. **内容真实性**:所有接口签名、功能描述与覆盖率报告严格一致;报告中签名不完整或可疑时,对照 `interface-spec.json` 校验
|
|
175
|
-
2. **可测试性判断准确性**:不可测试接口未生成用例
|
|
176
|
-
3. **预期输出可验证性**:每个用例的预期输出具体、可验证
|
|
177
|
-
4. **接口关联合理性**:多接口用例的接口间存在明确关联关系
|
|
178
|
-
5. **签名补全校验**:涉及参数类型、返回类型(含 `| null`/`undefined` 联合)、枚举值时,均已按 `interface-spec.json` 的权威签名补全,无沿用报告缺省/简略签名的用例
|
|
179
|
-
|
|
180
|
-
### 5.2 输出确认
|
|
181
|
-
|
|
182
|
-
- 文档末尾标注 `状态: 成功` 或 `状态: 失败`
|
|
183
|
-
- 确认可测试接口覆盖率达到100%
|
|
184
|
-
- 每个用例预期结果必须具体、可验证
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## 参考资料
|
|
189
|
-
|
|
190
|
-
- [可测试性判断指南](references/TESTABILITY_GUIDE.md) — 可测试性判断标准、接口类型测试规则、用例设计原则、空值/异常/大数据场景设计规范
|
|
191
|
-
- [用例模板与编写规范](references/TEMPLATE.md) — 文档整体模板、各类用例模板(正向/多接口/反向/空值)、六段式用例结构规范
|
|
192
|
-
- [完整生成示例](references/EXAMPLES.md) — 基于lodash的完整XTS用例描述生成示例
|
|
193
|
-
|
|
194
|
-
> **接口签名权威来源**:`interface-spec.json` 的 `signature` 字段可能与同对象的 `returnType` 分叉(历史遗留)。二者冲突时以 `returnType` + `params` 为准(`returnType` 完整保留 `| null` / `undefined` 等联合类型细节)。
|
|
1
|
+
---
|
|
2
|
+
name: arkts-library-xts-doc
|
|
3
|
+
description: 基于XTS覆盖率报告,为未覆盖接口自动判断可测试性并生成XTS用例描述文档。仅生成纯函数(无UI操作、可通过执行结果验证)的XTS用例描述,包含用例序号、名称、描述、预期结果、对应函数接口。当需要对鸿蒙原生库进行XTS覆盖率缺口填补、未覆盖接口测试规划时调用。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要XTS覆盖率报告(由ArkTsLibraryXTSCoverageSkill生成),需要文件写入权限到输出目录
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
category: ohos-testing
|
|
9
|
+
language: ArkTS/ETS
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 鸿蒙ArkTs原生库未覆盖接口XTS用例生成
|
|
13
|
+
|
|
14
|
+
读取XTS覆盖率报告中的未覆盖接口清单,自动判断接口可测试性,为可测试接口生成标准化XTS用例描述文档,100%覆盖所有未覆盖的可测试接口。
|
|
15
|
+
|
|
16
|
+
> ⚠️ **核心约束**:
|
|
17
|
+
> 1. 仅生成纯函数的XTS用例描述,不生成需要UI操作、无法通过执行结果验证的用例
|
|
18
|
+
> 2. 所有用例内容基于覆盖率报告中真实存在的接口签名和功能描述,严禁捏造
|
|
19
|
+
> 3. 100%覆盖所有未覆盖的可测试接口
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 任务参数
|
|
24
|
+
|
|
25
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
26
|
+
|------|------|------|------|
|
|
27
|
+
| `xtsCoverageReportPath` | string | ✅ | XTS覆盖率报告绝对路径(由ArkTsLibraryXTSCoverageSkill生成,含未覆盖接口清单及签名) |
|
|
28
|
+
| `outputDir` | string | ❌ | 输出目录,默认放置在覆盖率报告所在目录 |
|
|
29
|
+
|
|
30
|
+
### 输入异常处理
|
|
31
|
+
|
|
32
|
+
| 异常情况 | 处理方式 |
|
|
33
|
+
|---------|---------|
|
|
34
|
+
| 覆盖率报告不存在或无法读取 | 停止执行,向用户提示错误 |
|
|
35
|
+
| 未覆盖接口清单为空(覆盖率100%) | 生成空文档,标注"所有接口已覆盖,无需补充" |
|
|
36
|
+
| 无法确定库名称 | 使用默认命名 `Unknown未覆盖接口XTS用例描述.md` |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 输入依赖
|
|
41
|
+
|
|
42
|
+
- **前置SKILL**: `arkts-library-xts-coverage`(生成XTS覆盖率报告)
|
|
43
|
+
- **输入文件**: XTS覆盖率报告(`.md`格式,含未覆盖接口清单及签名)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 工作流程概览
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Phase 1: 读取覆盖率报告并提取未覆盖接口
|
|
51
|
+
↓
|
|
52
|
+
Phase 2: 接口可测试性判断
|
|
53
|
+
↓
|
|
54
|
+
Phase 3: XTS用例规划(正向+空值+异常+大数据)
|
|
55
|
+
↓
|
|
56
|
+
Phase 4: 生成XTS用例描述文档
|
|
57
|
+
↓
|
|
58
|
+
Phase 5: 文档验证与输出
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Phase 1:读取覆盖率报告并提取未覆盖接口
|
|
64
|
+
|
|
65
|
+
### 1.1 读取覆盖率报告
|
|
66
|
+
|
|
67
|
+
1. 使用 `read_file` 读取 `xtsCoverageReportPath` 全文
|
|
68
|
+
2. 提取库名称(用于输出文件命名)
|
|
69
|
+
3. 提取当前XTS覆盖率(用于概述中标注补充前后对比)
|
|
70
|
+
|
|
71
|
+
### 1.2 提取未覆盖接口清单
|
|
72
|
+
|
|
73
|
+
定位覆盖率报告「未覆盖接口清单」章节,提取每个未覆盖接口:
|
|
74
|
+
|
|
75
|
+
| 提取字段 | 来源列 | 用途 |
|
|
76
|
+
|---------|--------|------|
|
|
77
|
+
| 接口名称 | `方法/属性` 列 | 用例命名 |
|
|
78
|
+
| 完整签名 | `签名` 列 | 用例预期结果中标注精确调用方式 |
|
|
79
|
+
| 接口类型 | `类型` 列 | 可测试性判断依据 |
|
|
80
|
+
| 功能描述 | `功能描述` 列 | 用例描述的依据 |
|
|
81
|
+
| 所属类 | `### {ClassName}` 子标题 | 分组依据 |
|
|
82
|
+
|
|
83
|
+
> 覆盖率报告的未覆盖清单用于**索引**(确定要补充的接口及分组);报告中字段不完整或与规格不一致时,**精确参数类型/返回类型/枚举值一律以 `interface-spec.json` 为权威来源补全**,不得凭报告文本猜测或按函数名推断签名。
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Phase 2:接口可测试性判断
|
|
88
|
+
|
|
89
|
+
### 2.1 判断标准(摘要)
|
|
90
|
+
|
|
91
|
+
- **✅ 可测试**:纯函数、无UI操作、结果可验证、无不可控外部依赖
|
|
92
|
+
- **❌ 不可测试**:涉及UI操作、依赖不可控外部因素、结果不可验证、纯展示型、`private`/`protected` 成员、`public static readonly` 常量
|
|
93
|
+
- **⚠️ 需额外条件**:依赖Mock/异步等待/前置状态的接口,可测但需在用例中标注前提条件
|
|
94
|
+
|
|
95
|
+
> 完整判断标准、接口类型测试规则、分类示例参见 [可测试性判断指南](references/TESTABILITY_GUIDE.md)
|
|
96
|
+
|
|
97
|
+
### 2.2 接口分类标记
|
|
98
|
+
|
|
99
|
+
对每个未覆盖接口进行分类标记:`✅ 可测试`、`❌ 不可测试`、`⚠️ 可测试(需额外条件)`。
|
|
100
|
+
|
|
101
|
+
对于 `⚠️ 可测试(需额外条件)` 的接口,在用例描述中注明测试前提条件(如需要Mock网络请求)。
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Phase 3:XTS用例规划
|
|
106
|
+
|
|
107
|
+
### 3.1 设计原则(摘要)
|
|
108
|
+
|
|
109
|
+
- 每个可测试接口至少有1个**正向用例**
|
|
110
|
+
- 每个可测试接口至少有1个**空值/null输入用例**
|
|
111
|
+
- 每个可测试接口至少有1个**异常/边界值用例**
|
|
112
|
+
- 集合类型参数接口至少有1个**大数据量用例**
|
|
113
|
+
- 一个用例可包含多个关联接口(展示协同使用方式)
|
|
114
|
+
|
|
115
|
+
### 3.2 多接口用例设计
|
|
116
|
+
|
|
117
|
+
将多个接口放在同一用例中的条件:
|
|
118
|
+
- 接口之间存在调用依赖关系(如 `init` → `execute` → `getResult`)
|
|
119
|
+
- 接口协同完成一个完整功能流程(如 `create` → `configure` → `start`)
|
|
120
|
+
- 接口之间存在状态变化关系(如 `setConfig` → `getConfig` 验证)
|
|
121
|
+
|
|
122
|
+
### 3.3 跨接口综合场景设计
|
|
123
|
+
|
|
124
|
+
正向/空值/异常/大数据之外,还应设计四类**跨接口综合场景**:
|
|
125
|
+
1. **空值/异常边界综合**:将多个接口的空值、异常、边界输入组合进同一用例,验证错误处理的一致性
|
|
126
|
+
2. **大数据综合**:对集合/字符串类接口的数据处理链路(输入→处理→输出)组合验证
|
|
127
|
+
3. **端到端流程综合**:串联存在调用依赖的接口,模拟真实业务流程(初始化→配置→调用→清理)
|
|
128
|
+
4. **状态机综合**:对存在状态流转的接口按状态顺序验证(未初始化→初始化→运行→停止→销毁)
|
|
129
|
+
|
|
130
|
+
综合场景优先复用 3.2 中已建立关联的接口组,避免为每个接口单独堆叠低价值用例。
|
|
131
|
+
|
|
132
|
+
### 3.4 用例编号规则
|
|
133
|
+
|
|
134
|
+
- 用例序号采用三位补零格式:`001`、`002`、`003`...
|
|
135
|
+
- 序号按模块分组递增,便于管理
|
|
136
|
+
|
|
137
|
+
> 详细的场景设计规范(空值、异常、大数据、Mock、异步等待)参见 [可测试性判断指南](references/TESTABILITY_GUIDE.md) 和 [用例模板与编写规范](references/TEMPLATE.md)
|
|
138
|
+
|
|
139
|
+
### 3.5 用例计数约束调和
|
|
140
|
+
|
|
141
|
+
当下游存在「用例场景数 ≥ 接口覆盖数」的计数约束(即报告要求 `用例数 ≥ 已覆盖接口数`)时:
|
|
142
|
+
- **setter/getter 配对接口不合并为单用例**(每个接口各计 1 条用例),以保证接口数与用例数匹配
|
|
143
|
+
- 或通过 **3.3 跨接口综合场景**补足差额(综合场景一条用例计 1,便于补齐接口数)
|
|
144
|
+
- 若接口数明显大于用例场景容量,优先拆分多接口用例,保证每接口至少 1 条用例
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Phase 4:生成XTS用例描述文档
|
|
149
|
+
|
|
150
|
+
### 4.1 文档结构
|
|
151
|
+
|
|
152
|
+
生成的文档包含以下章节:
|
|
153
|
+
|
|
154
|
+
1. **概述** — 库名称、生成时间、覆盖率前后对比、用例统计
|
|
155
|
+
2. **接口可测试性分析** — 可测试/不可测试/需额外条件接口列表
|
|
156
|
+
3. **用例索引表** — 全部用例的序号、名称、涉及接口、模块归属
|
|
157
|
+
4. **XTS用例详细描述** — 每个用例的描述、预期结果、对应函数接口
|
|
158
|
+
|
|
159
|
+
### 4.2 文件命名与存放
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
文件命名规则:{库名}未覆盖接口XTS用例描述.md
|
|
163
|
+
存放位置:覆盖率报告所在目录(或指定 outputDir)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
> 完整文档模板参见 [用例模板与编写规范](references/TEMPLATE.md)
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Phase 5:文档验证与输出
|
|
171
|
+
|
|
172
|
+
### 5.1 验证检查项
|
|
173
|
+
|
|
174
|
+
1. **内容真实性**:所有接口签名、功能描述与覆盖率报告严格一致;报告中签名不完整或可疑时,对照 `interface-spec.json` 校验
|
|
175
|
+
2. **可测试性判断准确性**:不可测试接口未生成用例
|
|
176
|
+
3. **预期输出可验证性**:每个用例的预期输出具体、可验证
|
|
177
|
+
4. **接口关联合理性**:多接口用例的接口间存在明确关联关系
|
|
178
|
+
5. **签名补全校验**:涉及参数类型、返回类型(含 `| null`/`undefined` 联合)、枚举值时,均已按 `interface-spec.json` 的权威签名补全,无沿用报告缺省/简略签名的用例
|
|
179
|
+
|
|
180
|
+
### 5.2 输出确认
|
|
181
|
+
|
|
182
|
+
- 文档末尾标注 `状态: 成功` 或 `状态: 失败`
|
|
183
|
+
- 确认可测试接口覆盖率达到100%
|
|
184
|
+
- 每个用例预期结果必须具体、可验证
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 参考资料
|
|
189
|
+
|
|
190
|
+
- [可测试性判断指南](references/TESTABILITY_GUIDE.md) — 可测试性判断标准、接口类型测试规则、用例设计原则、空值/异常/大数据场景设计规范
|
|
191
|
+
- [用例模板与编写规范](references/TEMPLATE.md) — 文档整体模板、各类用例模板(正向/多接口/反向/空值)、六段式用例结构规范
|
|
192
|
+
- [完整生成示例](references/EXAMPLES.md) — 基于lodash的完整XTS用例描述生成示例
|
|
193
|
+
|
|
194
|
+
> **接口签名权威来源**:`interface-spec.json` 的 `signature` 字段可能与同对象的 `returnType` 分叉(历史遗留)。二者冲突时以 `returnType` + `params` 为准(`returnType` 完整保留 `| null` / `undefined` 等联合类型细节)。
|