Envoyer la sortie standard vers un fichier
Bonjour a tous,
Dans le cadre d'un projet, j'ai mis en place à l'aide de quelques classes objectscript une solution de tests d'integration.
Son principe est basique, les tests sont rassemblés dans des suites elles mêmes incluses dans un fichier par classe ou ensemble de classes testé.
Mon outil m'affiche à l'écran le bon passage des tests et utilise des séquences d'échappement terminal pour mettre en exergue les échecs (écriture en rouge) .
Mon souci est maintenant que j'aimerai obtenir les résultat dans un fichier tcommunicable à mon client.
Je me demandais s'il y avait une solution simple pour envoyer la sortie standard dans un fichier, il ne serait pas compliqué de gérer les séquence d'escape utilisée pour la coloration, et me permettrai de répondre rapidement
Si ce n'est pas possible, je modifierai un peu mes classes, ce qui sera une bonne chose car j'aurai du prendre en compte ce requierment dès le début de l'écriture de mes classes.
Je ferai dans tous le cas ces modifications pour pouvoir également proposer une sortie HTML ou PDF, quand ce sera terminé je passerai ça dans open-exchange
Bonjour @Pierre LaFay
pour rediriger la sortie standard du Terminal IRIS, tu peux ouvrir un fichier et l'indiquer via la commande USE
Exemple ci-dessous et en ligne :
Class utils.file { Parameter DIRECTORY = "/data/"; Parameter FILENAME = "results"; Parameter EXTENSION = ".txt"; /// Redirect standard output to a file ClassMethod results() As %Status { set sc = $$$OK SET file=..#DIRECTORY _ ..#FILENAME _ "_" _ $tr($zdt($h,8)," :")_..#EXTENSION OPEN file:("NRW"):5 USE file WRITE !,"BEGIN RESULTS ",$zdt($h,3),! do ##class(UnitTest.utils).run("Test3") WRITE !,"END RESULTS ",$zdt($h,3) CLOSE file WRITE !,"Results are in ",file,! return sc } }
Avec le fichier contenant toutes les écritures vers la sortie :
.png)
Merci @Sylvain Guilbaud ,
Cela va me permettre de conserver un peu mon code pas trop propre 🙃 et de produire un résultat, je vais aussi regarder le package de @Lorenzo Scalese
Bonjour @Pierre LaFay
J'avais écrit un package pour cela IO-Redirect , je pense que cela pourrait vous aider.
Merci @Lorenzo Scalese
Je suis allé voir le package et c'est exactement ce qu'il me faut Echo Redirect et Redirect Output to a global sont deux fonctionnalités qui vont me servir pour faire une sortie document plus adaptée