omega-reporter
v3.0.8
Published
Reporter dla Playwright wysyłający powiadomienia do Microsoft Teams z wynikami testów.
Readme
🚀 Omega Reporter
Reporter dla Playwright wysyłający powiadomienia do Microsoft Teams z wynikami testów.
✨ Funkcje
- 📊 Agregacja wyników testów z wielu jobów pipeline
- 🎨 Ładne karty adaptacyjne w MS Teams
- 🔍 Wyświetlanie tylko aktywnych projektów (nie pokazuje pustych wierszy)
- ⚠️ Wykrywanie błędów pipeline (gdy nie uruchomiono żadnych testów)
- 🎯 Wsparcie dla różnych typów projektów: API, Performance, Visual, Model Picker, E2E
- 📦 Dwa tryby pracy: natychmiastowe wysyłanie lub agregacja wyników
📦 Instalacja
npm install omega-reporter🔧 Użycie
Tryb 1: Natychmiastowe wysyłanie (domyślny)
W każdym jobie pipeline wysyłana jest osobna wiadomość po zakończeniu testów.
playwright.config.ts:
import OmegaTeamsReporter from 'omega-reporter/omega-teams-reporter';
export default defineConfig({
reporter: [
['list'],
[OmegaTeamsReporter, {
webhookUrl: process.env.TEAMS_WEBHOOK_URL
}]
],
// ...
});Tryb 2: Agregacja wyników z wielu jobów (ZALECANY)
Wyniki z wszystkich jobów są zbierane i wysyłana jest jedna zbiorcza wiadomość.
playwright.config.ts (w każdym jobie):
import OmegaTeamsReporter from 'omega-reporter/omega-teams-reporter';
export default defineConfig({
reporter: [
['list'],
[OmegaTeamsReporter, {
webhookUrl: process.env.TEAMS_WEBHOOK_URL,
sendImmediately: false // Zapisuj wyniki, nie wysyłaj od razu
}]
],
// ...
});Na końcu pipeline (osobny job):
// send-results.ts
import OmegaTeamsReporter from 'omega-reporter/omega-teams-reporter';
const webhookUrl = process.env.TEAMS_WEBHOOK_URL!;
await OmegaTeamsReporter.sendAggregatedResults(webhookUrl);GitLab CI (.gitlab-ci.yml):
stages:
- test
- report
test-api:
stage: test
script:
- npx playwright test --project=api
artifacts:
when: always
paths:
- /tmp/omega-test-results.json
test-e2e:
stage: test
script:
- npx playwright test --project=e2e
artifacts:
when: always
paths:
- /tmp/omega-test-results.json
send-teams-notification:
stage: report
when: always
dependencies:
- test-api
- test-e2e
script:
- node -e "require('omega-reporter/omega-teams-reporter').default.sendAggregatedResults(process.env.TEAMS_WEBHOOK_URL)"🎨 Wygląd powiadomień
Reporter wysyła estetyczne karty do Teams z:
- ✅/❌ Status testów (zielony/czerwony)
- 📊 Podsumowanie: liczba testów, zaliczonych, niezaliczonych, pominiętych, timeout
- ⏱️ Czas trwania testów
- 📋 Tabela z wynikami dla każdego aktywnego projektu
- 🔗 Link do joba w GitLab
Inteligentne funkcje:
- Nie wysyła powiadomienia gdy wszystkie testy przeszły ✅
- Pokazuje warning gdy pipeline się nie uruchomił ⚠️
- Wyświetla tylko projekty z testami (nie pokazuje pustych wierszy) 📋
🌍 Zmienne środowiskowe
TEAMS_WEBHOOK_URL- URL webhooka do MS Teams (wymagane)AK_VERSION- Wersja aplikacji (opcjonalne, wyświetlane w karcie)CI_PROJECT_URL- URL projektu GitLab (automatyczne w GitLab CI)CI_JOB_ID- ID joba GitLab (automatyczne w GitLab CI)
🛠️ Rozwój
# Instalacja zależności
npm install
# Budowanie projektu
npm run build
# Struktura plików
dist/
├── omega-teams-reporter.js
├── omega-teams-reporter.d.ts
├── omega-xml-reporter.js
├── omega-xml-reporter.d.ts
└── files/
└── fail.jpg📝 Zmiany w wersji 2.6.0
- ✅ Agregacja wyników z wielu jobów pipeline
- ✅ Inteligentne wykrywanie błędów pipeline
- ✅ Wyświetlanie tylko aktywnych projektów
- ✅ Lepszy wygląd kart adaptacyjnych
- ✅ Refaktoring kodu dla lepszej czytelności
- ✅ Poprawione kopiowanie plików (fail.jpg) podczas budowania
👥 Autorzy
Omega Team
📄 Licencja
MIT
