# Testing Course Samples

> Δοκιμή των Δειγμάτων Μαθήματος

- Skill: `gabrielmoreira/testing-course-samples-7` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gabrielmoreira/testing-course-samples-7`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gabrielmoreira/testing-course-samples-7/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: gabrielmoreira (https://skillmd.com/u/gabrielmoreira)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/gabrielmoreira/testing-course-samples-7

---

# Δοκιμή των Δειγμάτων Μαθήματος

Επαληθεύστε ότι τα τετράδια μαθημάτων και τα δείγματα κώδικα εκτελούνται σε ζωντανή
εγκατάσταση Microsoft Foundry / Azure OpenAI. Το αποθετήριο περιλαμβάνει ένα πρόγραμμα εκτέλεσης στο
[`scripts/validate-notebooks.ps1`](../../../../../scripts/validate-notebooks.ps1) που
εκτελεί κάθε τετράδιο Python χωρίς περιβάλλον εργασίας και εμφανίζει μια μήτρα ΑΠΟΤΕΛΕΣΜΑ/ΑΠΟΤΥΧΙΑ.

## Πότε να χρησιμοποιείται
- "Επαληθεύστε όλα τα τετράδια / δείγματα με τον Azure λογαριασμό μου."
- "Κάντε γρήγορο τεστ του μαθήματος μετά από αναβάθμιση πακέτων ή αλλαγή μοντέλων."
- "Ποια μαθήματα περνάνε / αποτυγχάνουν ακόμα ζωντανά;"

Μην χρησιμοποιείτε αυτό για το AI Smoke Test GitHub Action (που επαληθεύει *αναπτυγμένους*
φιλοξενούμενους agents — δείτε το [`tests/README.md`](../../../tests/README.md)). Αυτή η δεξιότητα
εκτελεί τα τετράδια τοπικά.

## Προαπαιτούμενα (ελέγξτε πρώτα)
1. **Python 3.12+** με εξαρτήσεις μαθήματος: `python -m pip install -r requirements.txt`
   συν τον εκτελεστή: `python -m pip install nbconvert ipykernel`.
2. **`.env` στη ρίζα του αποθετηρίου** (αντιγράψτε από [`.env.example`](../../../../../.env.example)) με τουλάχιστον:
   - `AZURE_AI_PROJECT_ENDPOINT` — endpoint έργου Foundry
     (`https://<account>.services.ai.azure.com/api/projects/<project>`)
   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — μια μη παρωχημένη ανάπτυξη (π.χ. `gpt-5-mini`)
   - `AZURE_OPENAI_ENDPOINT` (`https://<account>.openai.azure.com`) και `AZURE_OPENAI_DEPLOYMENT`
     για μαθήματα που καλούν απευθείας το Azure OpenAI (Μάθημα 06, 02-azure-openai, 14 handoff/human-loop).
3. **`az login`** ολοκληρωμένο — τα δείγματα αυθεντικοποιούνται με `AzureCliCredential` (Entra ID, χωρίς κλειδί).
4. Επιβεβαιώστε ότι υπάρχει η ανάπτυξη μοντέλου:
   `az cognitiveservices account deployment list -g <rg> -n <account> -o table`.

## Εκτέλεση της επαλήθευσης
```powershell
# Όλα τα Python τετράδια (παραλείπονται .NET, .venv, site-packages, μεταφράσεις, πόροι δεξιοτήτων)
pwsh scripts/validate-notebooks.ps1

# Μια μόνο διδασκαλία, με μεγαλύτερο χρόνο λήξης ανά κελί
pwsh scripts/validate-notebooks.ps1 -Filter '08-*' -Timeout 600

# Απλά λίστα με αυτά που θα εκτελούνταν (χωρίς εκτέλεση)
pwsh scripts/validate-notebooks.ps1 -List

# Ρητός διερμηνέας (αν το `python` δεν είναι στο PATH, π.χ. ψευδώνυμο από το Windows Store)
pwsh scripts/validate-notebooks.ps1 -Python "C:/path/to/python.exe"
```
Το σενάριο γράφει εκτελεσμένα αντίγραφα, καταγραφές ανά τετράδιο και το `results.json` στο
`$env:TEMP\aiab-nbval` και τερματίζει με τον αριθμό των αποτυχιών.

Οι παροδικές αποτυχίες (όρια ρυθμού HTTP 429 κοινής συνδρομής, περιστασιακό
σφάλμα `AzureCliCredential` ή λήξη χρόνου) επαναλαμβάνονται αυτόματα
(`-Retries`, προεπιλογή 2, με καθυστέρηση `-RetryDelaySeconds`, προεπιλογή 20). Εάν μια
ανάπτυξη μοντέλου λαμβάνει συχνά 429, ελέγξτε το παγκόσμιο όριο TPM της συνδρομής
(`az cognitiveservices usage list -l <region>`) — η αύξηση της χωρητικότητας μιας
μόνος ανάπτυξης δεν βοηθά όταν εξαντλείται το *όριο* της συνδρομής.

## Ερμηνεία αποτελεσμάτων
- `PASS` — το τετράδιο εκτελέστηκε πλήρως χωρίς σφάλματα κελιών.
- `FAIL` — εμφανίζεται η πρώτη γραμμή `*Error` / `*Exception`; ανοίξτε το αντίστοιχο
  αρχείο `log_*.txt` στον φάκελο εξόδου για το πλήρες traceback.
- Η αποτυχία ενός μόνο τετραδίου περιορίζεται από το `-Timeout` (ανά κελί), έτσι ένα παγωμένο
  κελί με ανθρώπινη παρέμβαση εμφανίζεται ως `StdinNotImplementedError` αντί να παγώσει.

## Μαθήματα που απαιτούν επιπλέον πόρους (αναμένεται να αποτύχουν χωρίς αυτούς)
| Μάθημα | Πρόσθετη απαίτηση |
|--------|-------------------|
| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, κλειδί) — έχει εναλλακτική διαδρομή εσωτερικής μνήμης |
| 11 MCP / GitHub | GitHub MCP διακομιστής + PAT |
| 13 μνήμη (cognee) | `cognee` ρυθμισμένο με πάροχο μοντέλων |
| 15 χρήση browser | Εγκατεστημένοι περιηγητές Playwright (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |
| 17 τοπικός agent | Foundry Local runtime + κατεβασμένο μοντέλο Qwen (τοπικά, χωρίς σύννεφο) |
| `*-dotnet-*` τετράδια | Πυρήνας .NET Interactive (αποκλεισμένο από προεπιλογή· χρησιμοποιήστε `-IncludeDotnet`) |

## Αναφορά αποτελεσμάτων
Συνοψίστε σε πίνακα ΑΠΟΤΕΛΕΣΜΑ/ΑΠΟΤΥΧΙΑ ομαδοποιημένο κατά μάθημα. Διαχωρίστε τις πραγματικές οπισθοδρομήσεις
(σφάλματα κώδικα/παραμετροποίησης προς διόρθωση) από τα περιβαλλοντικά κενά (λείπουν Search/Foundry Local/PAT),
και παραθέστε το αποτυγχάνον αρχείο `log_*.txt` για κάθε πραγματική αποτυχία.

---

<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης με τεχνητή νοημοσύνη [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
