在junit测试文件中,无法加载上下文

时间:2014-06-05 13:12:28

标签: spring

我为junit test

创建了一个结构

我的班级有这个注释

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-persistence.xml" })


/dev/prjX/src/test/resources/applicationContext-persistence.xml
/dev/prjX/src/test/resources/application.properties

在xml文件中我有

<context:property-placeholder location="classpath:application.properties" ignore-resource-not-found="false"/>

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource">
    <property name="driverClass" value="${junit.db.driver}"/>
    <property name="jdbcUrl" value="${junit.db.url}"/>
    <property name="username" value="${junit.db.user}"/>
    <property name="password" value="${junit.db.password}"/>
</bean>

在属性文件中我有

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
junit.db.driver=com.mysql.jdbc.Driver
junit.db.name=main_schema
junit.db.url=jdbc:mysql://localhost:3306
junit.db.user=admin
junit.db.password=admin

为什么找不到我的xml?

2 个答案:

答案 0 :(得分:0)

您必须将xml文件放在与Junit测试类相同的包中,或将其定义为

@ContextConfiguration(locations = { "classpath:/applicationContext-persistence.xml" })

答案 1 :(得分:0)

在文件名/之前添加classpath:/applicationContext-persistence.xml 并更改here

等财产名称
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
    destroy-method="close">
    <property name="factory"
        value="org.apache.tomcat.jdbc.pool.DataSourceFactory" />
    <property name="type" value="javax.sql.DataSource" />
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/ym" />
    <property name="username" value="admin" />
    <property name="password" value="admin" />
</bean>