Can';无法从JUnit测试文件中找到@SpringBootApplication
我是按照这里的指南来做的,-克隆了这个项目,用Gradle构建并尝试运行…应用程序运行良好。然后,我根据我的要求更改了一些文件结构,并尝试运行那里给出的单元测试用例,但得到了这个错误- 无法找到@SpringBootConfiguration,您需要在测试中使用@ContextConfiguration或@SpringBootTest(类=…) 我只在那里重组代码,这是我目前的项目结构-Can';无法从JUnit测试文件中找到@SpringBootApplication,spring,spring-boot,junit,Spring,Spring Boot,Junit,我是按照这里的指南来做的,-克隆了这个项目,用Gradle构建并尝试运行…应用程序运行良好。然后,我根据我的要求更改了一些文件结构,并尝试运行那里给出的单元测试用例,但得到了这个错误- 无法找到@SpringBootConfiguration,您需要在测试中使用@ContextConfiguration或@SpringBootTest(类=…) 我只在那里重组代码,这是我目前的项目结构- /projectroot - /src/main/java -Applicati
/projectroot
- /src/main/java
-Application.java
-/controller
-MyController.java
-/util
-MyUtil.java
-/model
-MyModel.java
现在正在尝试从运行测试用例
/src/test/java/controller/MyControllerTest.java
我已经经历了这一点,并且理解如果我将我的测试文件夹放在/src/main/java/下,它可能会工作。但如果我这样做了,测试文件将无法编译,而且它似乎也不是将应用程序代码与测试代码放在一起的正确方式。我知道我遗漏了一些非常基本的东西。您设置测试的方式(使用整个spring启动上下文),我相信
MyControllerTest.java
最多需要与Application.java
处于同一级别。另外,我注意到Application.java
正在使用默认包,您应该将其移动到一个包中,以便所有bean都位于您的Spring Boot主类下方:
/projectroot
- /src/main/java/com/example/project/
-Application.java
-/controller
-MyController.java
-/util
-MyUtil.java
-/model
-MyModel.java
- /src/test/java/com/example/project/
-MyControllerTest.java
如何从测试中解析Spring Boot的上下文:
搜索算法从包含测试的包开始工作
直到找到@SpringBootApplication或@SpringBootConfiguration
注释类。只要您以合理的方式构造代码
您的主配置通常是如何找到的
关于将默认软件包与Spring Boot一起使用:
当一个类不包含包声明时,它被认为是
在“默认包”中。“默认包”的使用是
一般不鼓励,应避免。它会引起特别的后果
使用@ComponentScan的Spring引导应用程序存在问题,
@EntityScan或@SpringBootApplication注释,因为每个类
从每个罐子里,都会读出来
我们建议您遵循Java推荐的包命名约定,并使用反向域名(例如com.example.project)
谢谢,这解决了我的问题。你是一个救生员:)。