2014-10-07 97 views
1

,它工作得很好,但如果我用命令行運行它像gradle這個測試不順利

gradle testgradle clean test

它rerurns java.io.FileNotFoundException

String FILE_PATH = "sample/src/test/resources/" 
IDataSet insertDataSet = new FlatXmlDataSet(new FileInputStream(FILE_PATH + "com/sample/mst.xml")); 

項目結構爲:

TestProject

  • 樣品
    • SRC
      • 測試
        • 的java
          • COM
            • 樣品
              • test.java
        • 資源
          • COM
            • 樣品
              • mst.xml
什麼是錯的,我該怎麼辦?

回答

0

你應該改變文件加載代碼:

getClass().getClassLoader().getResourceAsStream("mst.xml")

+0

非常感謝!!!!它運作良好:)如果可以的話,請解釋一下。 – mo12mo34 2014-10-07 06:39:50

+1

解釋是關於Java的入門課程的一部分,也可以從Javadoc學到很多東西。簡短版本:您嘗試使用當前工作目錄的相對路徑解析文件,假設它是CWD。建議的解決方案在知道存在分層結構(通常是文件系統或ZIP/JAR歸檔)並將細節留給運行時的類路徑中搜索資源。 – Radim 2014-10-07 08:13:54