2013-11-04 10 views
5

groovyとSOAP UIの新機能です。私は、SOAP UIのための私のテストを駆動するための豪華なスクリプトを使用しています。groovyでファイルを読み書きする

個人IDのファイルを読み込み、最初のファイルを削除し、プロパティを設定し、読み込んだファイルなしでファイルを書き戻すスクリプトを作成します。

はここにそれで私の最初のカットです:

List pids = new ArrayList() 

new File("c:/dev/pids.csv").eachLine { line -> pids.add(line) } 

String pid = pids.get(0); 
testRunner.testCase.setPropertyValue("personId", pid) 
pids.remove(0) 

new File("c:/dev/pids.csv").withWriter { out -> 
    pids.each() { aPid -> 
     out.writeLine(aPid) 
    } 
} 

出力はSOAPのUIに表示されますし、ファイルをタッチされません。道に迷いました。

答えて

7
ArrayList pids = null 
PrintWriter writer = null 

File f = new File("c:/temp/pids.txt") 

if (f.length() > 0){ 
    pids = new ArrayList() 

    f.eachLine { line -> pids.add(line) } 

    println("Item to be removed: " + pids.get(0)) 
    //testRunner.testCase.setPropertyValue("personId", pid) 
    pids.remove(0) 

    println pids 

    writer = new PrintWriter(f) 
    pids.each { id -> writer.println(id) } 

    writer.close() 
} 
else{ 
    println "File is empty!" 
} 
+0

ええ、それは、私がやってしまったものだ唯一私がBufferedWriterのを使用。他のすべてが失敗したら、Javaを使用します。 :)応答ありがとう。 – Thom

0
def myFile = new File("newfile.txt") 

def newFile = new File("newfile2.txt") 

//testRunner.testCase.setPropertyValue("personId", pid) 

PrintWriter printWriter = new PrintWriter(newFile) 

myFile.eachLine { currentLine, lineNumber -> 

    if(lineNumber > 1) 

     printWriter.println(currentLine) 
    } 

printWriter.close() 
関連する問題