Test Runner & CI/CD
Tests de qualité automatisés avec assertions, reporters et intégration CI/CD pour Orka AI.
import { minScore, maxScore, maxLatency, ConsoleReporter, JUnitReporter } from 'orkajs'; const report = await orka.test({ name: 'Regression Tests', dataset: [ { input: 'What is Orka AI?', expectedOutput: 'A TypeScript framework.', knowledge: 'docs' }, ], metrics: ['relevance', 'correctness', 'faithfulness'], assertions: [ minScore('relevance', 0.7), maxScore('hallucination', 0.3), maxLatency(10000), ], reporters: [ new ConsoleReporter(), new JUnitReporter('./test-results.xml'), ],}); if (report.failed > 0) process.exit(1);Assertions
minScore(metric, threshold)Exige métrique >= seuil
maxScore(metric, threshold)Exige métrique <= seuil
maxLatency(ms)Temps de réponse sous la limite
maxTokens(n)Usage de tokens sous la limite
contains(text)La sortie doit contenir le texte
notContains(text)La sortie ne doit PAS contenir le texte
matchesRegex(pattern)La sortie doit correspondre au regex
customAssertion(name, fn)Créer n'importe quelle assertion personnalisée
Reporters
ConsoleReporterSortie console formatée avec icônes réussite/échec
JsonReporter(path?)Exporter le rapport complet en JSON
JUnitReporter(path)Format XML JUnit pour les plateformes CI/CD
GitHub Actions
name: AI Quality Testson: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm install - run: npx tsx tests/ai-quality.ts env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - uses: dorny/test-reporter@v1 if: always() with: name: AI Quality Report path: test-results.xml reporter: java-junit