Java 无法在Spring MVC测试中自动连接sessionFactory

Java 无法在Spring MVC测试中自动连接sessionFactory,java,spring,unit-testing,spring-mvc,junit,Java,Spring,Unit Testing,Spring Mvc,Junit,我想为用SpringMVC编写的现有项目编写集成测试。所有当前的配置都是XML,我想用Java代码定义单独的配置类,以创建要在内存数据库中使用的DataSource和SessionFactory applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://

我想为用SpringMVC编写的现有项目编写集成测试。所有当前的配置都是XML,我想用Java代码定义单独的配置类,以创建要在内存数据库中使用的DataSource和SessionFactory

applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
                      http://www.springframework.org/schema/beans/spring-beans.xsd
                      http://www.springframework.org/schema/context
                      http://www.springframework.org/schema/context/spring-context.xsd">

<context:annotation-config/>
<context:component-scan base-package="az.company.dcs.restapp"/>

<bean class="az.company.dcs.restapp.component.I18nConfig">
    <constructor-arg name="language" value="az"/>
    <constructor-arg name="country" value="AZ"/>
</bean>

</beans>
我的项目结构:

但当我尝试运行示例测试时,它找不到我的sessionFactory bean,并给出错误:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error 
creating bean with name 
'az.company.dcs.restapp.dao.AutoBraceletTrackingDAOImplTest': Unsatisfied 
dependency expressed through field 'sessionFactory'; nested exception is 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No 
qualifying bean found for dependency [org.hibernate.SessionFactory]: 
expected at least 1 bean which qualifies as autowire candidate. Dependency 
annotations: 
{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=sessionFactoryTest)}
我的测试班:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestDbConfig.class})
public class AutoBraceletTrackingDAOImplTest {

@Autowired
@Qualifier("sessionFactoryTest")
private SessionFactory sessionFactory;



@Before
public void setUp() throws Exception {
}

@Test
public void create() throws Exception {
    System.out.println("Test");
}

}

您仅激活配置文件
测试的配置。由于您尚未激活配置文件,您的配置或多或少被忽略。我的错。我认为运行测试将自动激活测试配置文件。谢谢
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestDbConfig.class})
public class AutoBraceletTrackingDAOImplTest {

@Autowired
@Qualifier("sessionFactoryTest")
private SessionFactory sessionFactory;



@Before
public void setUp() throws Exception {
}

@Test
public void create() throws Exception {
    System.out.println("Test");
}

}