[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACBTY89EEM81A0WWN0QQT3":3,"skill-same:01M6ACBTY89EEM81A0WWN0QQT3":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":6,"updatedAt":43,"install":44,"resources":57},"01M6ACBTY89EEM81A0WWN0QQT3","test",null,"Run unit tests, integration tests, or slow integration tests matching CI. Use to validate changes before submitting a PR.","apache\u002Fskywalking","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACB19NRCBY51M74TPEM71Y",25001,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftest\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[5,24,25,26,27,28],"integration tests","unit tests","validate","pr","run","2026-11-10 10:12:30",false,"---\nname: test\ndescription: Run unit tests, integration tests, or slow integration tests matching CI. Use to validate changes before submitting a PR.\nargument-hint: \"[unit|integration|slow|module-name]\"\n---\n\n# Tests\n\nRun tests matching CI configuration.\n\n## Commands by argument\n\n### `unit` or no argument — unit tests\n\n```bash\n.\u002Fmvnw clean test -q -B -D\"checkstyle.skip\"\n```\n\nCI runs this on:\n- JDK 11: ubuntu, macOS, Windows\n- JDK 17, 21, 25: ubuntu only\n\n### `integration` — integration tests (excludes slow)\n\n```bash\n.\u002Fmvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -DexcludedGroups=slow\n```\n\nCI runs this on JDK 11, 17, 21, 25 (ubuntu only).\n\n### `slow` — slow integration tests\n\n```bash\n.\u002Fmvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true \\\n  -Dit.test=org.apache.skywalking.library.elasticsearch.ElasticSearchIT \\\n  -Dfailsafe.failIfNoSpecifiedTests=false\n```\n\nCI runs on JDK 11 (ubuntu only). Currently only ElasticSearch\u002FOpenSearch IT is in the slow matrix.\n\n### Module name — single module tests\n\n```bash\n# Unit tests for a specific module\n.\u002Fmvnw clean test -pl oap-server\u002Fanalyzer\u002F\u003Cmodule-name> -D\"checkstyle.skip\"\n\n# Integration tests for a specific module\n.\u002Fmvnw -B clean integration-test -pl oap-server\u002Fanalyzer\u002F\u003Cmodule-name> -Dcheckstyle.skip -DskipUTs=true\n```\n\n## Test frameworks\n\n- JUnit 5 (`org.junit.jupiter`)\n- Mockito for mocking\n- AssertJ for assertions\n- PowerMock for reflection utilities\n\n## Test naming conventions\n\n| Type | Pattern | Maven phase |\n|------|---------|-------------|\n| Unit tests | `*Test.java` | `test` |\n| Integration tests | `IT*.java` or `*IT.java` | `integration-test` |\n\n## Slow test tagging\n\nTests tagged with `@Tag(\"slow\")` are excluded from the normal integration-test job and run separately in the slow-integration-test job. Use this tag for tests that spin up external services (Elasticsearch, etc.) and take significant time.\n\n## CI retry behavior\n\nAll three CI jobs retry on failure (run the same command twice with `||`). This handles flaky tests but masks intermittent issues — if a test fails locally, investigate rather than relying on retries.\n\n## CI reference\n\nCI workflow: `.github\u002Fworkflows\u002Fskywalking.yaml`\n\n| Job | JDK | OS | Timeout |\n|-----|-----|----|---------|\n| `unit-test` | 11 (3 OS) + 17, 21, 25 (ubuntu) | ubuntu, macOS, Windows | 30 min |\n| `integration-test` | 11, 17, 21, 25 | ubuntu | 60 min |\n| `slow-integration-test` | 11 | ubuntu | 60 min |\n","# Tests\n\nRun tests matching CI configuration.\n\n## Commands by argument\n\n### `unit` or no argument — unit tests\n\n```bash\n.\u002Fmvnw clean test -q -B -D\"checkstyle.skip\"\n```\n\nCI runs this on:\n- JDK 11: ubuntu, macOS, Windows\n- JDK 17, 21, 25: ubuntu only\n\n### `integration` — integration tests (excludes slow)\n\n```bash\n.\u002Fmvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true -DexcludedGroups=slow\n```\n\nCI runs this on JDK 11, 17, 21, 25 (ubuntu only).\n\n### `slow` — slow integration tests\n\n```bash\n.\u002Fmvnw -B clean integration-test -Dcheckstyle.skip -DskipUTs=true \\\n  -Dit.test=org.apache.skywalking.library.elasticsearch.ElasticSearchIT \\\n  -Dfailsafe.failIfNoSpecifiedTests=false\n```\n\nCI runs on JDK 11 (ubuntu only). Currently only ElasticSearch\u002FOpenSearch IT is in the slow matrix.\n\n### Module name — single module tests\n\n```bash\n# Unit tests for a specific module\n.\u002Fmvnw clean test -pl oap-server\u002Fanalyzer\u002F\u003Cmodule-name> -D\"checkstyle.skip\"\n\n# Integration tests for a specific module\n.\u002Fmvnw -B clean integration-test -pl oap-server\u002Fanalyzer\u002F\u003Cmodule-name> -Dcheckstyle.skip -DskipUTs=true\n```\n\n## Test frameworks\n\n- JUnit 5 (`org.junit.jupiter`)\n- Mockito for mocking\n- AssertJ for assertions\n- PowerMock for reflection utilities\n\n## Test naming conventions\n\n| Type | Pattern | Maven phase |\n|------|---------|-------------|\n| Unit tests | `*Test.java` | `test` |\n| Integration tests | `IT*.java` or `*IT.java` | `integration-test` |\n\n## Slow test tagging\n\nTests tagged with `@Tag(\"slow\")` are excluded from the normal integration-test job and run separately in the slow-integration-test job. Use this tag for tests that spin up external services (Elasticsearch, etc.) and take significant time.\n\n## CI retry behavior\n\nAll three CI jobs retry on failure (run the same command twice with `||`). This handles flaky tests but masks intermittent issues — if a test fails locally, investigate rather than relying on retries.\n\n## CI reference\n\nCI workflow: `.github\u002Fworkflows\u002Fskywalking.yaml`\n\n| Job | JDK | OS | Timeout |\n|-----|-----|----|---------|\n| `unit-test` | 11 (3 OS) + 17, 21, 25 (ubuntu) | ubuntu, macOS, Windows | 30 min |\n| `integration-test` | 11, 17, 21, 25 | ubuntu | 60 min |\n| `slow-integration-test` | 11 | ubuntu | 60 min |\n",{"name":5,"description":7,"argument-hint":34},"[unit|integration|slow|module-name]","master","f4d38fdc21e5a929ef89556a1d7c337957523aa9",".claude\u002Fskills\u002Ftest",6627,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking","https:\u002F\u002Fskywalking.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-11 08:56:29",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add apache\u002Fskywalking --skill test",{"tool":50,"command":51},"bunx","bunx skills add apache\u002Fskywalking --skill test",{"tool":53,"command":54},"pnpm","pnpm dlx skills add apache\u002Fskywalking --skill test","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftest\u002FSKILL.md",true,[],[59,70,86,96,103,119],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":66,"publishedAt":29},"01M6ACBRBNXZ57EN1G8GREKFY5","run-e2e","Run SkyWalking E2E tests locally","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Frun-e2e\u002FSKILL.md",[65],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[28,67,68,5,69],"run e2e","skywalking","e2e tests",{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":82,"publishedAt":29},"01M6ACBNH0HSYFX2K9CYJSPAVM","package","Rebuild the SkyWalking distribution and OAP Docker image after source changes. Use before running e2e tests so the image reflects your code changes. Avoids the \"image looks updated but runtime has stale jars\" trap.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fpackage\u002FSKILL.md",[76,79],{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[72,69,83,84,85,68],"code","image","docker",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":29},"01M6ACBJQMZV0S42P4WMCFFPGP","new-monitoring-feature","Add a new monitoring target \u002F layer to SkyWalking OAP. Orients you to the OAL \u002F MAL \u002F LAL \u002F TAL \u002F SpanListener extension points, the UI template + submodule touchpoints, the docs set that must move together, and the cross-cutting traps that don't live in any one skill.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fnew-monitoring-feature\u002FSKILL.md",[],[93,94,95,68],"new monitoring feature","extension points","docs",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":29},"01M6ACBG5P0NY2A7AEX89BZNFH","license","Check and fix Apache 2.0 license headers and dependency licenses using skywalking-eyes. Use before submitting a PR.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Flicense\u002FSKILL.md",[],[98,27,9,68],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":112,"publishedAt":29},"01M6ACBDKKTXZ8Y36YHBADT8JA","gh-pull-request","Verify, commit, and push changes on a PR branch. Runs pre-flight checks (compile, checkstyle, license headers) before every push. Also creates the PR if one doesn't exist yet.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgh-pull-request\u002FSKILL.md",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",[113,114,115,116,117,27,118],"pull request","gh pull request","pull","commit","compile","push",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":29},"01M6ACBB39DNW4G2SR836V0RA8","generate-classes","Generate bytecode classes from DSL scripts (MAL, OAL, LAL, Hierarchy). Runs the compiler and dumps .class files for inspection.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgenerate-classes\u002FSKILL.md",[],[126,127],"generate","generate classes"]