diff --git a/json_to_md.py b/json_to_md.py index 2e79267a..a70bd76e 100644 --- a/json_to_md.py +++ b/json_to_md.py @@ -2,6 +2,7 @@ from collections import defaultdict from pathlib import Path from datetime import datetime import json +import argparse def stringify(obj): if obj is None or obj == "": @@ -33,7 +34,7 @@ def extract_params(test): lines.append(f" - Param {i}: `{value.strip()}`") return "\n".join(lines) -def json_to_adaptive_md_grouped(json_path, md_path): +def json_to_md_nested(json_path, md_path): with open(json_path) as f: data = json.load(f) @@ -60,9 +61,9 @@ def json_to_adaptive_md_grouped(json_path, md_path): grouped[filename][funcname].append(test) for filename, funcs in grouped.items(): - f.write(f"### 📁 {filename}\n\n") + f.write(f"
\n📁 {filename}\n\n") for funcname, tests in funcs.items(): - f.write(f"#### 🔧 Fonction: `{funcname}`\n\n") + f.write(f"
\n🔧 Fonction: `{funcname}`\n\n") for idx, test in enumerate(tests, 1): outcome = test.get("outcome", "unknown") icons = {"passed": "✅", "failed": "❌", "skipped": "⏭️", "error": "❗"} @@ -88,15 +89,15 @@ def json_to_adaptive_md_grouped(json_path, md_path): f.write("```\n\n") f.write("
\n") f.write("
\n\n") + f.write("\n\n") + f.write("\n\n") def main(): - import argparse - parser = argparse.ArgumentParser(description="Convertit un fichier JSON pytest en rapport Markdown.") + parser = argparse.ArgumentParser(description="Convert JSON test results to Markdown.") parser.add_argument("--input", required=True, help="Chemin du fichier JSON d'entrée") parser.add_argument("--output", required=True, help="Chemin du fichier Markdown de sortie") args = parser.parse_args() - - json_to_adaptive_md_grouped(args.input, args.output) + json_to_md_nested(args.input, args.output) print(f"✅ Rapport généré dans {args.output}") if __name__ == "__main__":