From fb3a668e8d38ff951f6fab9c1ce32f475f468e3d Mon Sep 17 00:00:00 2001 From: tligui_y Date: Tue, 8 Jul 2025 15:13:41 +0200 Subject: [PATCH] Add generate_test_summary.py --- generate_test_summary.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 generate_test_summary.py diff --git a/generate_test_summary.py b/generate_test_summary.py new file mode 100644 index 000000000..d60ed680f --- /dev/null +++ b/generate_test_summary.py @@ -0,0 +1,36 @@ +import glob +import json +from collections import defaultdict + +# Statuts possibles +statuses = ['passed', 'failed', 'broken', 'skipped', 'unknown'] +results = defaultdict(lambda: defaultdict(int)) +totals = defaultdict(int) + +# Analyse des fichiers JSON d'Allure +for f in glob.glob('allure-results/*-result.json'): + with open(f) as j: + data = json.load(j) + status = data.get('status', 'unknown').lower() + full_name = data.get('fullName', 'unknown') + test_file = next((part for part in full_name.split('.') if part.startswith('test_')), 'unknown') + results[test_file][status] += 1 + totals[status] += 1 + +# Création du fichier Markdown +with open('ci-reports/markdown/test-summary.md', 'w') as out: + out.write('# Test Summary by File\n\n') + out.write('| File | Passed | Failed | Broken | Skipped | Unknown |\n') + out.write('|------|--------|--------|--------|---------|---------|\n') + for file in sorted(results): + row = [file] + for s in statuses: + row.append(str(results[file].get(s, 0))) + out.write('| ' + ' | '.join(row) + ' |\n') + + # Résumé global à la fin + out.write('\n## Total Summary\n\n') + out.write('| Status | Count |\n') + out.write('|---------|-------|\n') + for s in statuses: + out.write(f'| {s.capitalize():<7} | {totals[s]} |\n')