Le reporting des tests est souvent réservé aux équipes techniques. Les outils comme Allure, ReportPortal ou TestRail sont puissants, mais peu accessibles pour les non-développeurs . Pourquoi ne pas centraliser automatiquement les résultats dans un outil simple, gratuit et accessible par tous ?
🌟 Problèmes fréquents
- Rapports peu lisibles: Générés en HTML, JSON ou XML, ils sont difficiles à comprendre pour les profils non techniques.
- Données dispersées: Les résultats sont éparpillés dans plusieurs outils ou pipelines, ce qui complique leur analyse.
- Feedback lent: Les anomalies ne sont pas toujours visibles rapidement, ralentissant les corrections.
- Solutions coûteuses: Les outils de reporting avancés nécessitent souvent des licences ou une infrastructure complexe.
🚀 Pourquoi choisir Notion ?
- Simple et collaboratif: Notion offre une interface claire, accessible à tous les profils (QA, Dev, PO, etc.).
- Intégration facile: L'API officielle `@notionhq/client` permet d'envoyer des données avec quelques lignes de code en Node.js.
- Base de données flexible: Filtres, tris, vues personnalisées : organisez vos résultats comme vous le souhaitez.
- Visualisation intégrée: Ajoutez des graphiques et des vues dynamiques directement dans Notion.
- Zéro coût: Notion est gratuit pour un usage individuel ou d’équipe de petite taille.
🧑💻 Comment ça fonctionne ?
Un petit script Node.js lit les résultats de vos tests (ex. `cypress-report.json`) à chaque exécution, et les envoie vers une base Notion via l’API. Alimente un tableau qui se met à jour et s’enrichit à chaque nouvelle exécution.
Installez les dépendances nécessaires à l’envoi des données vers Notion :
1npm install @notionhq/client dotenv1import * as fs from "fs";2import * as dotenv from "dotenv";3import { Client } from "@notionhq/client";45dotenv.config();6const notion = new Client({ auth: process.env.NOTION_TOKEN });7const databaseId = process.env.NOTION_DB_ID;89async function sendReportToNotion() {10 try {11 const raw = fs.readFileSync("cypress-report.json", "utf8");12 const data = JSON.parse(raw);13 const stats = data.stats;14 const status = stats.failures > 0 ? "Failed" : "Passed";15 const environment = process.env.ENVIRONMENT || "staging";1617 await notion.pages.create({18 parent: { database_id: databaseId },19 properties: {20 Status: { select: { name: status } },21 Date: { date: { start: new Date().toISOString() } },22 Total_Tests: { number: stats.tests || 0 },23 Passed_Tests: { number: stats.passes || 0 },24 Failed_Tests: { number: stats.failures || 0 },25 Environment: { select: { name: environment } },26 },27 });28 } catch(error) {29 console.error("Erreur lors de l39;envoi du rapport à Notion :", error);30 }31}3233sendReportToNotion();
Alimente un tableau qui se met à jour et s’enrichit à chaque nouvelle exécution.

Permet de créer des vues dynamiques : par exemple, afficher uniquement les tests échoués aujourd’hui, ou les régressions critiques à corriger en priorité.

Affiche des graphiques pour visualiser les statistiques clés : taux de réussite, durée moyenne, tendances dans le temps.

🤝 Bénéfices pour l’équipe
- Résultats visibles par tous: Plus besoin d’accès à un outil technique pour voir l’état des tests.
- Réaction rapide: Les anomalies sont visibles en temps réel, permettant des corrections immédiates.
- Suivi qualité facilité: Le management peut suivre les KPIs qualité facilement, sans demande au QA.
- Culture qualité partagée: Toute l’équipe peut contribuer au maintien de la stabilité du produit.
