[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699BQV4EZTYN3R1VBF56VDC":3,"skill-same:01M699BQV4EZTYN3R1VBF56VDC":59},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M699BQV4EZTYN3R1VBF56VDC","testing-course-samples",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79423,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fda\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[28,29],"testing","testing course samples","2026-11-10 10:12:30",false,"---\nname: testing-course-samples\n---\n# Test af kursusprøver\n\nBekræft, at lektions-notebooks og kodeeksempler kører mod en aktiv\nMicrosoft Foundry \u002F Azure OpenAI opsætning. Repoet indeholder en runner i\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1), som\neksekverer hver Python-notebook headlessly og udskriver en PASS\u002FFAIL matrix.\n\n## Hvornår bruges den\n- \"Valider alle notebooks \u002F prøver mod mit Azure abonnement.\"\n- \"Røgryst kurset efter opgradering af pakker eller ændring af modeller.\"\n- \"Hvilke lektioner går stadig igennem \u002F fejler live?\"\n\nBrug **ikke** denne til AI Smoke Test GitHub Action (som validerer *udrullede*\nhostede agenter — se [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Denne skill\nkører notebooks lokalt.\n\n## Forudsætninger (kontrollér først)\n1. **Python 3.12+** med kursusafhængigheder: `python -m pip install -r requirements.txt`\n   plus eksekvereren: `python -m pip install nbconvert ipykernel`.\n2. **`.env` i repoets rod** (kopiér fra [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) med mindst:\n   - `AZURE_AI_PROJECT_ENDPOINT` — Foundry projekt-endpoint\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — en ikke-deprecieret udrulning (fx `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) og `AZURE_OPENAI_DEPLOYMENT`\n     for lektioner, der kalder Azure OpenAI direkte (Lektion 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** gennemført — prøverne godkendes med `AzureCliCredential` (Entra ID, keyless).\n4. Bekræft at modeludrulningen findes:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Kørsel af validering\n```powershell\n# Alle Python-notebooks (springer .NET, .venv, site-packages, oversættelser, færdighedsaktiver over)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# En enkelt lektion med en længere timeout pr. celle\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Bare list, hvad der ville køre (ingen udførelse)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Eksplicit fortolker (hvis `python` ikke er på PATH, f.eks. Windows Store alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nSkriptet skriver eksekverede kopier, per-notebook logs, og `results.json` til\n`$env:TEMP\\aiab-nbval` og afslutter med antallet af fejl.\n\nForbigående fejl (shared-subscription HTTP 429 rate limits, en lejlighedsvis\n`AzureCliCredential` token-fejl eller timeout) prøves automatisk igen\n(`-Retries`, standard 2, med `-RetryDelaySeconds` tilbagekobling, standard 20). Hvis en\nmodeludrulning jævnligt giver 429, tjek abonnementets GlobalStandard\nTPM-kvote (`az cognitiveservices usage list -l \u003Cregion>`) — at øge en enkelt\nudrulnings kapacitet hjælper ikke når *abonnementets* kvote er opbrugt.\n\n## Fortolkning af resultater\n- `PASS` — notebooken kørte igennem fra start til slut uden cellefejl.\n- `FAIL` — den første `*Error` \u002F `*Exception` linje vises; åbn den tilsvarende\n  `log_*.txt` i output-mappen for fuld traceback.\n- En enkelt notebooks fejl begrænses af `-Timeout` (per celle), så en frossen\n  human-in-the-loop celle fremstår som `StdinNotImplementedError` i stedet for at fryse.\n\n## Lektioner der kræver ekstra ressourcer (forventes at fejle uden dem)\n| Lektion | Ekstra krav |\n|--------|------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, nøgle) — har en fallback vej i hukommelsen |\n| 11 MCP \u002F GitHub | GitHub MCP server + PAT |\n| 13 memory (cognee) | `cognee` konfigureret med en modeludbyder |\n| 15 browser-use | Playwright browsere installeret (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 lokal agent | Foundry Local runtime + en downloadet Qwen model (on-device, ikke i skyen) |\n| `*-dotnet-*` notebooks | .NET Interactive kernel (udelukket som standard; brug `-IncludeDotnet`) |\n\n## Rapportering tilbage\nOpsummer som en PASS\u002FFAIL tabel grupperet efter lektion. Skill ægte regressionsfejl\n(kode-\u002Fkonfigurationsfejl der skal rettes) fra miljømangler (manglende Search\u002FFoundry Local\u002FPAT),\nog referer til den fejlede `log_*.txt` for hver reel fejl.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Test af kursusprøver\n\nBekræft, at lektions-notebooks og kodeeksempler kører mod en aktiv\nMicrosoft Foundry \u002F Azure OpenAI opsætning. Repoet indeholder en runner i\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1), som\neksekverer hver Python-notebook headlessly og udskriver en PASS\u002FFAIL matrix.\n\n## Hvornår bruges den\n- \"Valider alle notebooks \u002F prøver mod mit Azure abonnement.\"\n- \"Røgryst kurset efter opgradering af pakker eller ændring af modeller.\"\n- \"Hvilke lektioner går stadig igennem \u002F fejler live?\"\n\nBrug **ikke** denne til AI Smoke Test GitHub Action (som validerer *udrullede*\nhostede agenter — se [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Denne skill\nkører notebooks lokalt.\n\n## Forudsætninger (kontrollér først)\n1. **Python 3.12+** med kursusafhængigheder: `python -m pip install -r requirements.txt`\n   plus eksekvereren: `python -m pip install nbconvert ipykernel`.\n2. **`.env` i repoets rod** (kopiér fra [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) med mindst:\n   - `AZURE_AI_PROJECT_ENDPOINT` — Foundry projekt-endpoint\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — en ikke-deprecieret udrulning (fx `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) og `AZURE_OPENAI_DEPLOYMENT`\n     for lektioner, der kalder Azure OpenAI direkte (Lektion 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** gennemført — prøverne godkendes med `AzureCliCredential` (Entra ID, keyless).\n4. Bekræft at modeludrulningen findes:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Kørsel af validering\n```powershell\n# Alle Python-notebooks (springer .NET, .venv, site-packages, oversættelser, færdighedsaktiver over)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# En enkelt lektion med en længere timeout pr. celle\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Bare list, hvad der ville køre (ingen udførelse)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Eksplicit fortolker (hvis `python` ikke er på PATH, f.eks. Windows Store alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nSkriptet skriver eksekverede kopier, per-notebook logs, og `results.json` til\n`$env:TEMP\\aiab-nbval` og afslutter med antallet af fejl.\n\nForbigående fejl (shared-subscription HTTP 429 rate limits, en lejlighedsvis\n`AzureCliCredential` token-fejl eller timeout) prøves automatisk igen\n(`-Retries`, standard 2, med `-RetryDelaySeconds` tilbagekobling, standard 20). Hvis en\nmodeludrulning jævnligt giver 429, tjek abonnementets GlobalStandard\nTPM-kvote (`az cognitiveservices usage list -l \u003Cregion>`) — at øge en enkelt\nudrulnings kapacitet hjælper ikke når *abonnementets* kvote er opbrugt.\n\n## Fortolkning af resultater\n- `PASS` — notebooken kørte igennem fra start til slut uden cellefejl.\n- `FAIL` — den første `*Error` \u002F `*Exception` linje vises; åbn den tilsvarende\n  `log_*.txt` i output-mappen for fuld traceback.\n- En enkelt notebooks fejl begrænses af `-Timeout` (per celle), så en frossen\n  human-in-the-loop celle fremstår som `StdinNotImplementedError` i stedet for at fryse.\n\n## Lektioner der kræver ekstra ressourcer (forventes at fejle uden dem)\n| Lektion | Ekstra krav |\n|--------|------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, nøgle) — har en fallback vej i hukommelsen |\n| 11 MCP \u002F GitHub | GitHub MCP server + PAT |\n| 13 memory (cognee) | `cognee` konfigureret med en modeludbyder |\n| 15 browser-use | Playwright browsere installeret (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 lokal agent | Foundry Local runtime + en downloadet Qwen model (on-device, ikke i skyen) |\n| `*-dotnet-*` notebooks | .NET Interactive kernel (udelukket som standard; brug `-IncludeDotnet`) |\n\n## Rapportering tilbage\nOpsummer som en PASS\u002FFAIL tabel grupperet efter lektion. Skill ægte regressionsfejl\n(kode-\u002Fkonfigurationsfejl der skal rettes) fra miljømangler (manglende Search\u002FFoundry Local\u002FPAT),\nog referer til den fejlede `log_*.txt` for hver reel fejl.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fda\u002F.agents\u002Fskills\u002Ftesting-course-samples",26019,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners","https:\u002F\u002Faka.ms\u002Fai-agents-beginners","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-07 12:51:12",{"source":7,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":51,"command":52},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":54,"command":55},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fda\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",true,[],[60,67,78,86,94,101],{"skillNo":61,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":66,"publishedAt":30},"01M69A206TRZ8KK0CW0HYJF5V5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[64,65],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[28,29],{"skillNo":68,"name":69,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":75,"publishedAt":30},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[76,8,77],"docs","microsoft docs",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":30},"01M69A1VPZFJQ1HNGTZQ5P3WSC","local-ai-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[84,85],"ai agents","local ai agents",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":30},"01M69A1S947N7MM6V9JF85S2E7","jupyter-notebook","當使用者要求建立、搭建或編輯 Jupyter 筆記本（`.ipynb`）用於實驗、探索或教學時使用；優先使用隨附範本並執行輔助腳本 `new_notebook.py` 來產生一個乾淨的起始筆記本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fjupyter-notebook\u002FSKILL.md",[],[93],"jupyter notebook",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":30},"01M69A1Q8EXPWKZSQK69V6WF22","deploying-scalable-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[100],"deploying scalable agents",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":30},"01M69A1MHZTH3RH9N8VYSYG74X","azure-openai-to-responses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fazure-openai-to-responses\u002FSKILL.md",[],[107],"azure openai to responses"]