- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 障害メモ/DBUnitがリソースを読み込めない へ行く。
- 1 (2017-04-10 (月) 18:34:17)
- 2 (2017-04-10 (月) 18:35:50)
キーワード†
- DBUtil
- gradle build
現象†
gradle buildしたときのテストで、DBUnitがリソースを読み込めない。
org.dbunit.dataset.DataSetException: error getting list of tables at org.dbunit.dataset.csv.CsvURLProducer.produce(CsvURLProducer.java:115) at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:97) at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:81) at org.dbunit.dataset.csv.CsvURLDataSet.<init>(CsvURLDataSet.java:49) (中略) Caused by: java.io.FileNotFoundException: C:\path\to\project\build\classes\test\path\to\resouces\table-ordering.txt (指定されたファイルが見つかりません。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:93) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90) at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188) at java.net.URL.openStream(URL.java:1045) at org.dbunit.dataset.csv.CsvProducer.getTables(CsvProducer.java:152) at org.dbunit.dataset.csv.CsvURLProducer.produce(CsvURLProducer.java:103)
原因†
gradleがリソースを出力する先とDBUnitがリソースを入力する元が違う。
gradleの出力先 | DBUnitの入力元 |
build/resources/test | build/classes/test |
対策†
gradleがリソースを出力する先を変更する。
sourceSets { test { output.resourcesDir = output.classesDir } }
dependencies{}の下にでも書いてあげるとよい。
備考†
STS(Eclipse)で開発しているときでも、まめに端末からビルドしてあげないと後で焦る。