diff --git a/json_to_md.py b/json_to_md.py index 1b82fbcbb..77852e295 100644 --- a/json_to_md.py +++ b/json_to_md.py @@ -69,29 +69,45 @@ def json_to_md_nested(json_path, md_path, allure_dir=None): f.write(f"- **Durée totale**: `{duration:.3f}`s\n" if duration else "- **Durée totale**: `None`\n") f.write("\n") + if "collectors" in data: f.write("## 📚 Collectés\n") + + # Grouper par dossier principal + grouped = defaultdict(list) for collector in data["collectors"]: - outcome = collector.get("outcome", "unknown") - emoji = "✅" if outcome == "passed" else "❌" nodeid = collector.get("nodeid", "unknown") - short_node = nodeid.split("[")[0] - f.write(f"
\n{emoji} `{short_node}`\n\n") - f.write(f"- **outcome:** `{outcome}`\n") - results = collector.get("result", []) - if results: - f.write("- **result:**\n```\n") - for item in results: - if isinstance(item, dict): - for k, v in item.items(): - f.write(f"{k}: {v}\n") - f.write("\n") - else: - f.write(f"{item}\n") - f.write("```\n") - else: - f.write("- **result:** `None`\n") + path = nodeid.split("::")[0] + main_folder = path.split("/")[0] if "/" in path else path + grouped[main_folder].append(collector) + + for folder, collectors in grouped.items(): + f.write(f"
\n📁 `{folder}` ({len(collectors)} tests)\n\n") + + for collector in collectors: + outcome = collector.get("outcome", "unknown") + emoji = "✅" if outcome == "passed" else "❌" + nodeid = collector.get("nodeid", "unknown") + short_node = nodeid.split("[")[0] + f.write(f"
\n{emoji} `{short_node}`\n\n") + f.write(f"- **outcome:** `{outcome}`\n") + results = collector.get("result", []) + if results: + f.write("- **result:**\n```\n") + for item in results: + if isinstance(item, dict): + for k, v in item.items(): + f.write(f"{k}: {v}\n") + f.write("\n") + else: + f.write(f"{item}\n") + f.write("```\n") + else: + f.write("- **result:** `None`\n") + f.write("
\n\n") + f.write("
\n\n") + if "tests" in data and "summary" in data: