问题与maven + surefire-plugin和Spring @Autowired

时间:2012-04-27 19:34:44

标签: spring maven-3 junit4 maven-surefire-plugin

我一直在让Spring @Autowired在maven测试中工作。当我在IntellJ中运行JUnit测试时(没有尝试Eclipse)它可以工作。但是当我运行mvn clean install时,JUnit测试失败并出现以下错误

  

testApp(com.sample.spring.AppTest):创建名为“com.sample.spring.AppTest”的bean时出错:注入自动连接的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:com.sample.spring.AppB com.sample.spring.AppTest.appB;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到类型为[com.sample.spring.AppB]的匹配bean用于依赖:预期至少有一个bean符合此依赖关系的autowire候选资格。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}

我创建了一个自包含的示例项目,该项目始终如一地展示了这种行为。我使用的是Spring 3.1.1。我确信有人遇到了同样的问题并且破解了它。寻找关于这个问题的一些指示。

1 个答案:

答案 0 :(得分:1)

这是构建路径问题:

在eclipse中工作我将ContextConfiguration更改为:

@ContextConfiguration(locations = "classpath:applicationContext.xml")

并且它使用标准eclipse runner和maven(maven test或maven install)运行。

确保您拥有:

  

的src /主/ JAVA

     

src / test / java和

     

的src /测试/资源

在buildpath中声明为源文件夹