[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69ANZK45PDMWHSTKZKZTS2V":3,"skill-same:01M69ANZK45PDMWHSTKZKZTS2V":60},{"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":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M69ANZK45PDMWHSTKZKZTS2V","run-integration-tests",null,"Run integration tests to verify that extension components work together correctly. Use this after modifying component interactions or event handling.","microsoft\u002Fvscode-python-environments","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69ANKH8QP6PYCYYVP4340EX",147,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-integration-tests\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"integration tests","run integration tests","run","integration","tests","components","component","verify","work","use","extension","event","2026-11-10 10:12:30",false,"---\nname: run-integration-tests\ndescription: Run integration tests to verify that extension components work together correctly. Use this after modifying component interactions or event handling.\n---\n\nRun integration tests to verify that multiple components (managers, API, settings) work together correctly.\n\n## When to Use This Skill\n\n- After modifying how components communicate (events, state sharing)\n- After changing the API surface\n- After modifying managers or their interactions\n- When components seem out of sync (UI shows stale data, events not firing)\n\n## Quick Reference\n\n| Action                    | Command                                                                |\n| ------------------------- | ---------------------------------------------------------------------- |\n| Run all integration tests | `npm run compile && npm run compile-tests && npm run integration-test` |\n| Run specific test         | `npm run integration-test -- --grep \"manager\"`                         |\n| Debug in VS Code          | Debug panel → \"Integration Tests\" → F5                                 |\n\n## How Integration Tests Work\n\nIntegration tests run in a real VS Code instance but focus on **component interactions**:\n\n- Does the API reflect manager state?\n- Do events fire when state changes?\n- Do different scopes return appropriate data?\n\nThey're faster than E2E (which test full workflows) but more thorough than smoke tests.\n\n## Workflow\n\n### Step 1: Compile and Run\n\n```bash\nnpm run compile && npm run compile-tests && npm run integration-test\n```\n\n### Step 2: Interpret Results\n\n**Pass:**\n\n```\n  Integration: Environment Manager + API\n    ✓ API reflects manager state after refresh\n    ✓ Different scopes return appropriate environments\n    ✓ Environment objects have consistent structure\n\n  3 passing (25s)\n```\n\n**Fail:** Check error message and see Debugging section.\n\n## Debugging Failures\n\n| Error               | Cause                       | Fix                             |\n| ------------------- | --------------------------- | ------------------------------- |\n| `API not available` | Extension activation failed | Check Debug Console             |\n| `Event not fired`   | Event wiring issue          | Check event registration        |\n| `State mismatch`    | Components out of sync      | Add logging, check update paths |\n| `Timeout`           | Async operation stuck       | Check for deadlocks             |\n\nFor detailed debugging: Debug panel → \"Integration Tests\" → F5\n\n## Adding New Integration Tests\n\nCreate files in `src\u002Ftest\u002Fintegration\u002F` with pattern `*.integration.test.ts`:\n\n```typescript\nimport * as assert from 'assert';\nimport * as vscode from 'vscode';\nimport { waitForCondition, TestEventHandler } from '..\u002FtestUtils';\nimport { ENVS_EXTENSION_ID } from '..\u002Fconstants';\n\nsuite('Integration: [Component A] + [Component B]', function () {\n    this.timeout(120_000);\n\n    let api: ExtensionApi;\n\n    suiteSetup(async function () {\n        const extension = vscode.extensions.getExtension(ENVS_EXTENSION_ID);\n        assert.ok(extension, 'Extension not found');\n        if (!extension.isActive) await extension.activate();\n        api = extension.exports;\n    });\n\n    test('[Interaction test]', async function () {\n        \u002F\u002F Test component interaction\n    });\n});\n```\n\n## Test Files\n\n| File                                                     | Purpose                                            |\n| -------------------------------------------------------- | -------------------------------------------------- |\n| `src\u002Ftest\u002Fintegration\u002FenvManagerApi.integration.test.ts` | Manager + API tests                                |\n| `src\u002Ftest\u002Fintegration\u002Findex.ts`                          | Test runner entry point                            |\n| `src\u002Ftest\u002FtestUtils.ts`                                  | Utilities (`waitForCondition`, `TestEventHandler`) |\n\n## Prerequisites\n\n- **CI needs webpack build** - Run `npm run compile` (webpack) before tests, not just `npm run compile-tests` (tsc)\n- **Extension builds** - Run `npm run compile` before tests\n\n## Notes\n\n- Integration tests are faster than E2E (30s-2min vs 1-3min)\n- Focus on testing component boundaries, not full user workflows\n- First run downloads VS Code (~100MB, cached in `.vscode-test\u002F`)\n","Run integration tests to verify that multiple components (managers, API, settings) work together correctly.\n\n## When to Use This Skill\n\n- After modifying how components communicate (events, state sharing)\n- After changing the API surface\n- After modifying managers or their interactions\n- When components seem out of sync (UI shows stale data, events not firing)\n\n## Quick Reference\n\n| Action                    | Command                                                                |\n| ------------------------- | ---------------------------------------------------------------------- |\n| Run all integration tests | `npm run compile && npm run compile-tests && npm run integration-test` |\n| Run specific test         | `npm run integration-test -- --grep \"manager\"`                         |\n| Debug in VS Code          | Debug panel → \"Integration Tests\" → F5                                 |\n\n## How Integration Tests Work\n\nIntegration tests run in a real VS Code instance but focus on **component interactions**:\n\n- Does the API reflect manager state?\n- Do events fire when state changes?\n- Do different scopes return appropriate data?\n\nThey're faster than E2E (which test full workflows) but more thorough than smoke tests.\n\n## Workflow\n\n### Step 1: Compile and Run\n\n```bash\nnpm run compile && npm run compile-tests && npm run integration-test\n```\n\n### Step 2: Interpret Results\n\n**Pass:**\n\n```\n  Integration: Environment Manager + API\n    ✓ API reflects manager state after refresh\n    ✓ Different scopes return appropriate environments\n    ✓ Environment objects have consistent structure\n\n  3 passing (25s)\n```\n\n**Fail:** Check error message and see Debugging section.\n\n## Debugging Failures\n\n| Error               | Cause                       | Fix                             |\n| ------------------- | --------------------------- | ------------------------------- |\n| `API not available` | Extension activation failed | Check Debug Console             |\n| `Event not fired`   | Event wiring issue          | Check event registration        |\n| `State mismatch`    | Components out of sync      | Add logging, check update paths |\n| `Timeout`           | Async operation stuck       | Check for deadlocks             |\n\nFor detailed debugging: Debug panel → \"Integration Tests\" → F5\n\n## Adding New Integration Tests\n\nCreate files in `src\u002Ftest\u002Fintegration\u002F` with pattern `*.integration.test.ts`:\n\n```typescript\nimport * as assert from 'assert';\nimport * as vscode from 'vscode';\nimport { waitForCondition, TestEventHandler } from '..\u002FtestUtils';\nimport { ENVS_EXTENSION_ID } from '..\u002Fconstants';\n\nsuite('Integration: [Component A] + [Component B]', function () {\n    this.timeout(120_000);\n\n    let api: ExtensionApi;\n\n    suiteSetup(async function () {\n        const extension = vscode.extensions.getExtension(ENVS_EXTENSION_ID);\n        assert.ok(extension, 'Extension not found');\n        if (!extension.isActive) await extension.activate();\n        api = extension.exports;\n    });\n\n    test('[Interaction test]', async function () {\n        \u002F\u002F Test component interaction\n    });\n});\n```\n\n## Test Files\n\n| File                                                     | Purpose                                            |\n| -------------------------------------------------------- | -------------------------------------------------- |\n| `src\u002Ftest\u002Fintegration\u002FenvManagerApi.integration.test.ts` | Manager + API tests                                |\n| `src\u002Ftest\u002Fintegration\u002Findex.ts`                          | Test runner entry point                            |\n| `src\u002Ftest\u002FtestUtils.ts`                                  | Utilities (`waitForCondition`, `TestEventHandler`) |\n\n## Prerequisites\n\n- **CI needs webpack build** - Run `npm run compile` (webpack) before tests, not just `npm run compile-tests` (tsc)\n- **Extension builds** - Run `npm run compile` before tests\n\n## Notes\n\n- Integration tests are faster than E2E (30s-2min vs 1-3min)\n- Focus on testing component boundaries, not full user workflows\n- First run downloads VS Code (~100MB, cached in `.vscode-test\u002F`)\n",{"name":5,"description":7},"main","92c13e7942499b7608a22bf1cb86b881a90afc98",".github\u002Fskills\u002Frun-integration-tests",82,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=ms-python.vscode-python-envs","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 07:16:10",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add microsoft\u002Fvscode-python-environments --skill run-integration-tests",{"tool":52,"command":53},"bunx","bunx skills add microsoft\u002Fvscode-python-environments --skill run-integration-tests",{"tool":55,"command":56},"pnpm","pnpm dlx skills add microsoft\u002Fvscode-python-environments --skill run-integration-tests","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-integration-tests\u002FSKILL.md",true,[],[61,85,100,125,147,164],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":31},"01M69AP5C8W366N8TDNBZA2YQ4","settings-precedence","VS Code settings precedence rules and common pitfalls. Essential for any code that reads or writes settings. Covers getConfiguration scope, inspect() vs get(), and multi-workspace handling.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsettings-precedence\u002FSKILL.md",[],[68,69,70,25,71,72,73,74,75,76,77,78,79,80,81,82,83,84],"settings precedence","settings","review","code","file","workspace","common","Rules","get","essential","false","scope","multi","common pitfalls","pitfalls","inspect","for",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":31},"01M69AP3CMT4CYDAZ6GQXCJN1D","run-smoke-tests","Run smoke tests to verify extension functionality in a real VS Code environment. Use this when checking if basic features work after changes.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-smoke-tests\u002FSKILL.md",[],[92,93,21,94,23,71,26,27,95,28,96,29,97,98,99],"smoke tests","run smoke tests","smoke","environment","basic","changes","features","when",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":111,"publishedAt":31},"01M69AP1H7465VYNYGZA7RSAMW","run-pre-commit-checks","Run the mandatory pre-commit checks before committing code. Includes lint, type checking, and unit tests. MUST be run before every commit.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-pre-commit-checks\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[112,113,21,114,115,116,117,71,118,119,120,121,23,122,123,124],"commit","run pre commit checks","pre commit checks","pre commit","unit tests","lint","issues","pre-commit","fix","auto","type","unit","auto-fix",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":134,"publishedAt":31},"01M69ANXP7SBRDK7TK3C54V695","run-e2e-tests","Run E2E tests to verify complete user workflows like environment discovery, creation, and selection. Use this before releases or after major changes.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frun-e2e-tests\u002FSKILL.md",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000008","测试与质量",[135,136,21,137,138,23,139,140,26,141,95,28,142,143,144,145,97,146],"run e2e tests","e2e tests","run e2e","e2e","workflows","discovery","user","releases","selection","creation","complete","environment discovery",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":31},"01M69ANVY2ABDQCXJBQNBV587M","python-manager-discovery","Environment manager-specific discovery patterns and known issues. Use when working on or reviewing environment discovery code for conda, poetry, pipenv, pyenv, or venv.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpython-manager-discovery\u002FSKILL.md",[],[154,155,140,156,71,118,95,28,157,158,159,78,160,161,162,163,84,99,146],"python","python manager discovery","manager","Poetry","patterns","conda","name","pipenv","pyenv","venv",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":31},"01M69ANT39TYG676Q12DAWM182","generate-snapshot","Generate a codebase health snapshot for technical debt tracking and planning. Analyzes git history, code complexity, debt markers, and dependencies to identify hotspots and refactoring priorities.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-python-environments\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgenerate-snapshot\u002FSKILL.md",[],[171,172,173,71,174,175,176,177,178,179,180,181,182,183,184,185,186,187,84,188],"generate snapshot","generate","snapshot","planning","git","health","refactoring","history","technical","codebase health","complexity","code complexity","priorities","dependencies","technical debt","markers","output","codebase"]