OrkaJS
Orka.JS

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

ConsoleReporter

Sortie 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 Tests
on: [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