@DatabaseSetupアノテーションで、xmlファイルからデータをセットアップできない

@DatabaseSetupアノテーションで、xmlファイルからデータをセットアップできない

@DatabaseSetupアノテーションで、xmlファイルからデータをセットアップできない

事象

spring tools suite からH2databaseとmybatisを用いたmavenプロジェクトのJunitテストを行う。
spring-test-dbunit(DBunit)を用いて、

@DatabaseSetupアノテーションで、xmlファイルからデータをセットアップする。

repositoryの試験を実行しようとした際に以下のエラーが発生。

エラー内容

Caused by: java.lang.NoClassDefFoundError: org/dbunit/dataset/xml/FlatXmlDataSetBuilder
	at com.github.springtestdbunit.dataset.FlatXmlDataSetLoader.createDataSet(FlatXmlDataSetLoader.java:36)
	at com.github.springtestdbunit.dataset.AbstractDataSetLoader.loadDataSet(AbstractDataSetLoader.java:54)
	at com.github.springtestdbunit.DbUnitRunner.loadDataset(DbUnitRunner.java:209)
	at com.github.springtestdbunit.DbUnitRunner.loadDataSets(DbUnitRunner.java:192)
	at com.github.springtestdbunit.DbUnitRunner.setupOrTeardown(DbUnitRunner.java:173)
	at com.github.springtestdbunit.DbUnitRunner.beforeTestMethod(DbUnitRunner.java:75)
	at com.github.springtestdbunit.DbUnitTestExecutionListener.beforeTestMethod(DbUnitTestExecutionListener.java:185)
	at com.github.springtestdbunit.TestExecutionListenerChain$3.call(TestExecutionListenerChain.java:94)
	at com.github.springtestdbunit.TestExecutionListenerChain.runChain(TestExecutionListenerChain.java:127)
	... 24 common frames omitted
	Caused by: java.lang.ClassNotFoundException: org.dbunit.dataset.xml.FlatXmlDataSetBuilder
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 33 common frames omitted

原因

@DatabaseSetupはspring-test-dbunitが提供している
必要なライブラリが不足している。
dbunitが提供している、「FlatXmlDataSetBuilder.class」が存在していないため

解決策

自分の設定していた、pom.xmlのmavenプラグインを確認

<dependency>
    <groupId>org.dbunit</groupId>
    <artifactId>dbunit</artifactId>
    <version>2.4.3</version>
</dependency>

Maven依存関係から org.dbunit.dataset.xml.FlatXmlDataSetBuilder.classを確認
⇒存在しない

ので、バージョンを新しくして設定

<dependency>
    <groupId>org.dbunit</groupId>
    <artifactId>dbunit</artifactId>
    <version>2.5.3</version>
</dependency>

Maven依存関係から org.dbunit.dataset.xml.FlatXmlDataSetBuilder.classを確認
⇒ある

正常に動作

H2databaseカテゴリの最新記事