如何解决Maven测试无法解决自动装配的Spring Boot依赖项
通过Intellij执行时,Spring Boot测试运行正常。但是当我使用Maven运行测试时,它们会失败。
我使用以下Maven测试命令:
mvn test
在surefire插件报告中找到原因:
--------------------------------------------------- --------------------------测试集:com.miro.project.controllers.ProjectTest -------------------------------------------------- -----------------------------测试运行:5,失败:0,错误:5,跳过:0,经过时间:7.839 s
在终端中(执行测试后):
IllegalState无法加载ApplicationContext
在我的测试中,所有依赖项都加载了 @Autowired 批注。我正在使用Java8,Maven 3.6.3和Spring Boot 2.3.0
有什么主意吗?
谢谢。
解决方法
确保所有类对Spring都是可见的。尝试检查每个类上是否都有正确的注释(@ Component,@ Service,@ Repository等)。如果acmeApplication.java具有您的主要方法,请确保其中包含@EnableAutoConfiguration和@SpringBootApplication批注。
,有两个问题:
-
当Maven运行多个测试(使用 mvn test 命令)时, 莫名其妙地弄乱了端口-因为这些类中的每一个都是 使用
TestRestTemplate
因此解决方案是分别调用每个测试类。我创建了一个专用脚本,并将其一个接一个地命名:
#! / usr / bin / zsh
cd /home/miro/IdeaProjects/acme-project/acme-backend
mvn -Dtest="AcmeControllerTest" test -Dspring.profiles.active=dev
mvn -Dtest="AcmeProfileControllerTest" test -Dspring.profiles.active=dev
mvn -Dtest="RandomControllerTest" test -Dspring.profiles.active=dev
-
使用以下命令运行Maven时,我必须明确定义环境:
-Dspring.profiles.active = dev
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。