2011-10-27 69 views
22

我想加載位於我的項目工作區中的/ datatest文件夾內的資源。因此,整個文件將是/datatest/a.xml。如何獲得我在單元測試中需要的資源的絕對路徑,因爲單元測試可以在任何我不想硬編碼的機器上運行,但是得到它而不是使用類加載器?我該怎麼做 ?使用groovy從我的項目結構加載測試資源

+0

是您的項目工作區的類路徑?通常不會。如果是這樣的話,類加載器不能看到它 –

+0

是的項目工作區包含在類路徑 – Phoenix

+0

你也可以看看這個答案(http://stackoverflow.com/questions/14162100/convert-a-classpath-文件名到實際文件名/ 14162103#14162103) – GreenGiant

回答

38

如果它在你的類路徑中,那麼這應該工作:

String xmlString = this.getClass().getResource('/datatest/a.xml').text 
+0

它實際上是一個「.lst」文件...例如「a.lst」...我將它添加到intelliJ的編譯器資源設置中,但仍然沒有運氣 – Phoenix

+1

在這種情況下,它不在類路徑 –

+0

我沒有明確定義CLASS_PATH,但通過運行此Groovy單行命令發現當前目錄包含在我的有效/默認CLASS_PATH中:'this.class .classLoader.rootLoader.URLs.each {println it}' - 然後清楚我應該在哪裏保存文件,以便我可以'getResource'在以後打開它們。 – MarkHu