要使用DBunit,必须设置一些属性。它们可以直接通过代码设置,也可以通过maven属性设置。
我正在使用DBunit 2.4.9,我通过maven设置麻烦。我已经从DBunit检查了pom.xml,并且存在:
<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很新,所以我觉得我在这里错过了什么
答案 0 :(得分:0)
我已经弄明白了。问题来自不在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>
如果你有更好的解决方法,我可以接受建议