Robot Framework - relative Pfade zu verwenden, um tests von verschiedenen directory-Variationen
Habe ich ein Problem mit meinem Robot Framework test-Suiten. Ich habe ein einfaches test-Struktur wie diese:
robotframework
|_foo
|_tests folder
|_pages folder
|_firefoxTestProfile folder
|_...
Habe ich eine bare-bones-Firefox-Profil-Pfad für die Ausführung meiner versuche, und legen Sie die variable wie folgt:
*** Variables ***
${FF_PROFILE} foo\firefoxTestProfile
*** Keywords ***
Open browser window
Open Browser ${test_url} ${browser}
... ff_profile_dir=${FF_PROFILE}
Wenn ich mit meinen tests aus dem obersten Verzeichnis, es läuft wunderbar:
C:/robotframework$ pybot foo/tests/test.txt
Jedoch, wenn ich versuche, führen Sie es aus dem foo-Verzeichnis, wie hier:
C:/robotframework/foo$ pybot tests/test.txt
Tests werfen fehl, die besagt
"The system cannot find the path specified: foo/firefoxTestProfile/*.*"
Ich habe versucht, verschiedene Dinge, wie setzen Sie den Pfad als
../foo/firefoxTestProfile
/foo/firefoxTestProfile
firefoxTestProfile
sowie durch den Umzug der firefoxTestProfile Ordner in einen anderen Pfad innerhalb der Datei-Struktur und die Aktualisierung zu diesem neuen Weg, aber nichts davon funktionierte und zeigte die gleiche Fehlermeldung wie zuvor.
Es ist auch wichtig, denn ich möchte eine Standard-firefox-Profil laufen die tests, und diese tests sind bestanden zwischen den verschiedenen Menschen, die für die Ausführung von Ihnen lokal auf Ihren Rechnern. Jegliche Hilfe würde sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt viele eingebaute Variablen, die helfen können, definieren Sie den Pfad richtig.
Derjenige, der am meisten interessant ist hier ${CURDIR}
Aus der Dokumentation:
Ich in der Regel legen Sie den master-suite-setup-Datei (in deinem Fall der root-Ordner "tests") und dort würde ich definieren die folgenden 3 globaler Ebene Variablen
Erstellen Sie eine Datei __init.- Roboter auf der root den Ordner "tests".
In es schaffen eine suite-setup-Abschnitt (die wird ausgeführt werden, bevor jeder testen - aber nur einmal!)
Leider Selen hat Probleme - zumindest unter Windows - mit der nicht-kanonischen Pfade. Die
${/}..${/}
erweist sich als problematisch und Selen schlägt mit Datei-Referenzen mit solchen strings.Lösung ist die Verwendung der String-Bibliothek zusammen mit
${CURDIR}
:können Sie einen relativen Pfad wie in diesem Beispiel:
Sollten Sie erwähnen, den relativen Pfad 'firefoxTestProfile" aus dem Datei-die läuft über die tests.