Update json_to_md.py
Run Pytest with Allure and Coverage Reports / tests (push) Successful in 1m12s
Run Pytest with Allure and Coverage Reports / deploy (push) Has been skipped

This commit is contained in:
2025-07-10 11:25:59 +02:00
parent 5ef02a4a9a
commit c845a85b26
+8 -7
View File
@@ -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"<details>\n<summary>📁 {filename}</summary>\n\n")
for funcname, tests in funcs.items():
f.write(f"#### 🔧 Fonction: `{funcname}`\n\n")
f.write(f"<details>\n<summary>🔧 Fonction: `{funcname}`</summary>\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("</details>\n")
f.write("</details>\n\n")
f.write("</details>\n\n")
f.write("</details>\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__":