2017-03-16 2 views
0

Ich schaffte es, eine Fledermaus-Datei über Groovy in SoapUI mit Runtime.runtime.exec("cmd /c C:\temp\test.bat") auszuführen Aber ich hätte gerne die Fledermaus-Datei in einem Ordner namens Skripte, wo meine Soapui-Projekt-Datei ist.SoapUI und absoluter Pfad

Beispiel:

Soapui-project file.xml 

-- Scripts 

--- test.bat 

Runtime.runtime.exec("cmd /c Scripts/test.bat") funktioniert nicht. Ich brauche wirklich Hilfe hier.

+0

Damit dies funktioniert, muss der relative Pfad innerhalb des aktuellen Arbeitsverzeichnisses vorhanden sein. Woher kennt Ihr Programm das aktuelle Arbeitsverzeichnis? – Squashman

+0

versucht, dieses Def groovyUtils = new com.eviware.soapui.support.GroovyUtils (Kontext) def ProjectDir = groovyUtils.projectPath log.info (ProjectDir) " Runtime.runtime.exec (" cmd/c ProjectDir Scripts /test.bat ") Aber das hat nicht funktioniert – user3624378

+0

Sie wollen nicht den absoluten Pfad verwenden, weil es auf einer anderen Maschine fehlschlägt, ist das richtig? – Rao

Antwort

0

In einem Team teilen wir die Projekt-Artefakte mit verschiedenen Mitgliedern und jeder kann ein anderes Verzeichnis verwenden, um sie zu kopieren. In solchen Situationen funktioniert der absolute Pfad in groovigen Skripten, wie Sie bereits erwähnt haben, möglicherweise nicht, wenn das Verzeichnis Änderungen erhält.

Um dies zu übergeben, sollte das Präfix des Pfads variabel sein. Und der Rest des Pfades kann behoben werden, da die gesamten Artefakte noch unverändert sind.

Um dies zu handhaben, verwenden Sie unten, die das Projektverzeichnis als root verwendet und es dynamisch bekommt.