要使用DBunit,必须设置一些属性。它们可以通过代码或maven属性直接设置。
我使用的是DBunit 2.4.9,通过maven设置它会有麻烦。我检查了pom.xml从DBunit,这是存在的:
<systemProperties>
....
<property>
<name>dbunit.profile.driverClass</name>
<value>${dbunit.profile.driverClass}</value>
</property>我尝试过从settings.xml或项目pom.xml设置这个属性,但是我仍然得到了这个异常:DbAssertionFailedError: driverClass is null
下面是我在pom.xml上设置的属性(在根级):
<properties>
<dbunit.profile.driverClass>org.postgresql.Driver</dbunit.profile.driverClass>
<dbunit.profile.url>jdbc:postgresql://localhost:5432/tests</dbunit.profile.url>
<dbunit.profile.user>postgres</dbunit.profile.user>
<dbunit.profile.password>postgres</dbunit.profile.password>
/properties>我对maven很陌生,所以我想我错过了一些东西
发布于 2015-08-03 12:46:14
我已经想明白了。问题来自于POM.xml和实际代码之间不存在的属性名称。例如,代码依赖于属性dbunit.driverClass,而DBunit POM.xml在属性中包含以下行:
<property>
<name>dbunit.profile.driverClass</name>
<value>${dbunit.profile.driverClass}</value>
</property>我对maven-failsafe-plugin进行了以下配置:
<configuration>
<systemPropertyVariables>
<dbunit.driverClass>${dbunit.profile.driverClass}</dbunit.driverClass>
<dbunit.connectionUrl>${dbunit.profile.url}</dbunit.connectionUrl>
<dbunit.username>${dbunit.profile.user}</dbunit.username>
<dbunit.password>${dbunit.profile.password}</dbunit.password>
</systemPropertyVariables>
</configuration>如果你有更好的解决办法,我愿意接受建议
https://stackoverflow.com/questions/31743495
复制相似问题