2016-12-06 49 views
0

我運行一個測試套件中的testng.xml看起來象下面這樣:如何得到修改csv文件,而TestNG的測試套件正在進行

<suite> 
<test name="createFlow"> 
    <classes> 
     <class name="createReservation"> 
     </class> 
    </classes> 
</test> 
<test name="modifyFlow"> 
    <classes> 
     <class name="modifyReservation"> 
     </class> 
    </classes> 
</test> 

參數創建的預訂正在取自reservation.csv。預留一旦創建,預留ID就會存儲在該csv中,即。它會覆蓋已存在的ID的值,該ID用於修改該特定預留,其代碼寫入modifyReservation.java。

我面臨的問題是,一旦我運行測試套件,修改流程不會從csv獲取剛剛在預留流程中創建的最新預留ID,但它需要先前在csv中提到的ID 。

請提出我應該做什麼改變,以便在同一個套件中,在執行過程中,我能夠獲取更新的ID。

+1

更新ID後嘗試保存並關閉文件,並在提取ID之前重新打開文件。 –

+0

我已經這麼做了。每次在下一個測試用例中重新打開測試用例之後,我將關閉bufferedReader和bufferWriter。 –

+0

請閱讀[問]。請提供您嘗試過的代碼和執行結果,包括任何錯誤消息等。 – JeffC

回答

0

在該文件中,您有用於在csv文件中讀取/寫入數據的讀取和寫入方法,在每個方法中使用局部變量而不是全局變量。 在每個方法中創建FileInputStream和FileOutputStream的新對象。 FileInputStream fis = new FileInputStream(csvFilePath); 希望它能工作

+0

我已經在下面的代碼中。 雖然從csv文件讀取,我開始與下面的代碼: 'CSVReader讀者=新CSVReader(新的BufferedReader(新的InputStreamReader( \t \t \t \t \t csv.openStream(), 「UTF-8」)));'在寫入csv文件時,我從下面的代碼開始: ''= new BufferedReader(new FileReader(fileName)); bw = new BufferedWriter(new FileWriter(fileName));' 爲每個變量創建新的變量目前沒有任何幫助。 –