我正面临一个小挑战,我不知道如何解决它。在我当前的应用程序中,我们使用 RabbitMQ 作为 AMQP 代理(使用<strong>spring-rabbit),并且我们成功编写了集成测试,其中 RabbitMQ ConnectionFactory 自动连接等。
现在我们还有一些针对小型控制器的单元测试,当我使用命令行运行它们时会出现错误
grails test-app
org.springframework.beans.factory.BeanCreationException:创建名为“rabbitMQConfig”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 org.springframework.amqp.rabbit.connection.ConnectionFactory rabbitmq.config.RabbitMQConfig.connectionFactory;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type of [org.springframework.amqp.rabbit.connection.ConnectionFactory] found for dependency: 预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
当我在 IntelliJ 中运行单元测试时一切正常!
所以我想知道在 IntelliJ 和 Grails 命令行中运行测试之间有什么区别。我想这与 Grails 运行测试的环境有关。但我们还连接了 RabbitMQTestConfig,以便集成测试与测试配置一起工作。
我对为什么这在 IntelliJ 中而不是在命令行中起作用感到有点困惑。有什么线索吗?