Wie zum abrufen und festlegen der Standard-Ausgabe-Verzeichnis in Robot Framework(Fahrt) in Laufzeit
Ich möchte alle meine output-Dateien in einem benutzerdefinierten Speicherort befinden, die zu einem Run-Verzeichnis erstellt, basierend auf Datum-Zeit während der Laufzeit. Die Ausgabe-Ordner datetime erstellt wird, in das TestSetup
Habe ich die Funktion "Process_Output_files" verschieben Sie die Dateien in den Run-Ordner(Run1,Run2,Run3 Ordner).
Habe ich versucht, mit dem argument-d und benutzt die Funktion "Process_Output_files" als suite abreißen zu bewegen die Ausgabe-Dateien in den jeweiligen Run-Verzeichnis.
Aber bekomme ich die folgende Fehlermeldung "Der Prozess kann nicht auf die Datei zugreifen, da wird Sie von einem anderen Prozess verwendet". Ich weiß, das ist, weil das Robot Framework (Reiten) ist derzeit mit diesem.
Wenn ich das nicht mit dem argument-d angeben, die Ausgabe-Dateien werden immer gespeichert im temp Ordner.
c:\users\<user>\appdata\local\temp\RIDEfmbr9x.d\output.xml
c:\users\<user>\appdata\local\temp\RIDEfmbr9x.d\log.html
c:\users\<user>\appdata\local\temp\RIDEfmbr9x.d\report.html
Meine Frage ist, gibt es eine Möglichkeit zu erhalten, verschieben Sie die Dateien in benutzerdefinierten Speicherort während der Laufzeit mit in Robot Framework.
Es ist unklar, warum Sie nicht mit den
-d
option. Warum ist das nicht für Sie arbeiten?InformationsquelleAutor Karthick | 2013-07-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verstehe ich das Ergebnis das Sie wollen, haben Ihre output-Dateien in Ihre benutzerdefinierten Ordner. Wenn dies Ihr Wunsch ist, kann es erreicht werden, die zur Laufzeit wird Sie nicht haben, um Sie zu bewegen, die als Teil Ihres post-processing. Dies funktioniert nicht in FAHRT, da aber leider die Ordnerstruktur wird dynamisch erstellt. Ich habe zwei Möglichkeiten für Sie.
Option 1: Verwenden eines Skripts zum Auftakt Ihrer tests
FAHREN ist genial, aber in meiner bescheidenen Meinung nach, sollte man nicht verwenden, es zu laufen, diejenigen tests, nur zum erstellen und Debuggen diejenigen tests. Skripts sind viel leistungsfähiger und flexibler.
Vorausgesetzt, Sie haben eine test, test2.txt, die Sie ausführen möchten, das Skript, das Sie verwenden, um dies zu tun, könnte so etwas wie:
Als beiseite, wenn Sie beabsichtigen zu tun, die Nachbearbeitung Ihrer Dateien mithilfe von rebot, bewusst sein, müssen Sie möglicherweise nicht zu schaffen intermediate-Protokoll-und Bericht-Dateien. Die output.xml Dateien enthalten alles, was Sie brauchen, so dass, wenn Sie nicht wollen, um die überflüssigen Dateien, verwenden Sie
--log NONE --report NONE
Option 2: Verwenden Sie ein listener zu tun, die Nachbearbeitung
Ein listener ist ein Programm, das Sie schreiben, der auf Ereignisse reagiert (x_start, x_end, etc). Die
close()
Veranstaltung ist ähnlich wie die teardown-Funktion und die Letzte Sache ist, genannt. Also, vorausgesetzt, Sie haben eine FunktionmoveFiles()
Sie müssen lediglich auf das erstellen einer listener-Klasse (myListener), definieren dieclose()
Methode aufrufen, IhremoveFiles()
Funktion, und Benachrichtigen Sie Ihren test, der es melden sollte, um einen listener mit dem argument--listener myListener
.Diese option sollte kompatibel sein mit dem FAHREN, obwohl ich zugeben, ich habe nie versucht, die Hörer mit der IDE.
Wenn Sie schreiben, ein python-Skript, das Sie brauchen nicht zu rufen
os.system
. Roboter verfügt über eine API zum ausführen von tests von python. Siehe robot-framework.readthedocs.org/en/2.8.4/autodoc/...InformationsquelleAutor Sisyphus
Können Sie die folgende syntax in FAHRT (Argumente:) so erstellen Sie die Ausgabe im newfolders dynamisch
Der oben genannten syntax gibt Sie die Ausgabe in folgenden Ordner:
Hoffe, das hilft 🙂
Hallo Karthik VN, wie kann man den timestamp auch Hinzugefügt, um die Ausgabe-Ordner-name
Ich habe es, seiner die unter Befehl
--outputdir TestResult-%date:~-4,4%%date:~-10,2%%date:~-7,2%%time:~-11,2%%time:~-8,2%%time:~-5,2% --timestamp
dann ausgegeben werden soll, wird in den unter-Ordner :Output: D:\RobotPoC\TestResult\20170209152358\output-20170209-152359.xml
Hey @vinu, gibt Es eine Registerkarte Ausführen in FAHRT-tool. Das Argument Text-Feld ist innerhalb dieser Registerkarte.
Hey @SaradaAkurathi , meine starke Vermutung, Ihre Automatisierung wirft einen Fehler von 12 Uhr auf 9:59am. Das ist, weil die %Zeit% return einstelligen Stunden-Stempel verursachen, dass die syntax-Fehler während der pybot Ausführung. Syntax-Fehler aufgrund von Leerzeichen in Ordner-Namen, verursacht durch einstelligen Stunden-Stempel. Ich denke, ich habe nicht versucht es noch nicht.
InformationsquelleAutor Karthik VN
Zumindest können Sie schreiben, ein benutzerdefiniertes Skript ausführen, mit der das verschieben von Dateien nach der Testfall-Ausführung. In diesem Fall werden die Dateien nicht mehr wie früher von pybot.
hier gehen Sie, das ist, was ich benutze:
import os import sys testexecute = sys.argv[1] #print testexecute os.system("pybot -d ../rflog "+ testexecute)
InformationsquelleAutor kontulai