2017-03-16 19 views
0

GroovySoapUIRuntime.runtime.exec("cmd /c C:\temp\test.bat")のbatファイルを実行することができましたが、私のsoapui-projectファイルのある場所にあるbatファイルをscriptsというフォルダに入れたいと思います。SoapUIと絶対パス

例:

Soapui-project file.xml 

-- Scripts 

--- test.bat 

Runtime.runtime.exec("cmd /c Scripts/test.bat")動作しません。私は本当にここで助けが必要です。

+0

これを実行するには、現在の作業ディレクトリが何であっても相対パスが存在する必要があります。あなたのプログラムは、どのように現在の作業ディレクトリが何であるか知っていますか? – Squashman

+0

はこの 'DEF groovyUtils =新しいcom.eviware.soapui.support.GroovyUtils(コンテキスト) DEF PROJECTDIR = groovyUtils.projectPath log.info(PROJECTDIR') Runtime.runtime.exec(「CMD/C PROJECTDIRスクリプトを試してみました/test.bat ") しかし、それはうまくいきませんでした – user3624378

+0

別のマシンで失敗するので、絶対パスを使いたくないのですか? – Rao

答えて

0

チームでは、プロジェクト成果物をさまざまなメンバーと共有し、それぞれ異なるディレクトリを使用してコピーします。したがって、このような状況では、あなたが言及したようなグルーヴィースクリプトの絶対パスは、ディレクトリが変更されても機能しない可能性があります。

これを渡すには、パスのプレフィックスを変更する必要があります。残りの部分は修正されますが、アーティファクトは変更されません。

これを処理するには、以下のようにプロジェクトディレクトリをルートとして使用し、それを動的に取得します。

import com.eviware.soapui.support.GroovyUtils 
def path = new GroovyUtils(context).projectPath 
log.info "Project directory : ${path}" 
Runtime.runtime.exec("cmd /c ${path}/Scripts/test.bat")