J'essaye d'analyser ouput à partir du module doctest de Python et de le stocker dans un fichier HTML.Comment puis-je traiter ce fichier texte et analyser ce dont j'ai besoin?
J'ai un résultat similaire à:
**********************************************************************
File "example.py", line 16, in __main__.factorial
Failed example:
[factorial(n) for n in range(6)]
Expected:
[0, 1, 2, 6, 24, 120]
Got:
[1, 1, 2, 6, 24, 120]
**********************************************************************
File "example.py", line 20, in __main__.factorial
Failed example:
factorial(30)
Expected:
25252859812191058636308480000000L
Got:
265252859812191058636308480000000L
**********************************************************************
1 items had failures:
2 of 8 in __main__.factorial
***Test Failed*** 2 failures.
Chaque échec est précédé d'une ligne d'astérisques, qui délimitent chaque échec de test de l'autre.
Ce que je voudrais faire est de supprimer le nom de fichier et la méthode qui a échoué, ainsi que les résultats attendus et réels. Ensuite, je voudrais créer un document HTML en utilisant ceci (ou le stocker dans un fichier texte, puis faire un second tour d'analyse). Comment puis-je faire cela en utilisant uniquement Python ou une combinaison d'utilitaires shell UNIX?
EDIT: J'ai formulé le script shell suivant qui correspond à chaque bloc comme je le souhaite, mais je ne sais pas comment rediriger chaque correspondance sed vers son propre fichier.
python example.py | sed -n '/.*/,/^\**$/p' > `mktemp error.XXX`
Si vous supprimez le fichier, la méthode, le résultat prévu et le résultat réel, que reste-t-il? – juanjux
Eh bien, j'ai juste du mal à les analyser en morceaux séparés, parce que jusqu'à présent, je ne peux saisir le bloc entier à la fois, pas les champs individuels. – samoz