Groovyを使用して、プロジェクト構造からテストリソースをロードする

私は、プロジェクトワークスペースの/ datatestフォルダの中にあるリソースをロードしたいと思います。したがって、ファイル全体は/datatest/a.xmlになります。ユニットテストで必要なこのリソースの絶対パスを取得するにはどうすればいいですか?ユニットテストはどのマシンでも実行できますが、ハードコードする必要はありません。代わりにクラスローダーを使用しないでください。どうすればいいのですか ?

22
また、この回答を確認することもできます。
追加された 著者 GreenGiant,
はい、プロジェクトワークスペースはクラスパスに含まれています
追加された 著者 Phoenix,
あなたのプロジェクトはクラスパス上の作業スペースですか?通常はありません。そうであれば、クラスローダーはそれを見ることができません
追加された 著者 tim_yates,

1 答え

あなたのクラスパスにあれば、これはうまくいくはずです:

String xmlString = this.getClass().getResource( '/datatest/a.xml' ).text
41
追加された
それは実際には ".lst"ファイルです...例えば "a.lst" ...私はそれをintelliJのコンパイラリソース設定に追加しましたが、まだ運がありません
追加された 著者 Phoenix,
明示的にCLASS_PATHを定義していませんでしたが、このGroovyの1つのライナーを実行することによって現在のディレクトリが有効/デフォルトのCLASS_PATHに含まれていることがわかりました: this.class.classLoader.rootLoader.URLs.each {println it} getResource を後で開くことができるようにファイルを保存する場所が明確になりました。
追加された 著者 MarkHu,
その場合、クラスパス上にはありません
追加された 著者 tim_yates,
私は先導/
追加された 著者 crusy,