Spring Tool Suite中Spring Boot测试加载数据源URL失败问题
问题:STS内运行Spring Boot测试报数据源配置错误,Maven命令行测试正常
在Spring Tool Suite 4.17.2(Windows 10环境,全新安装)中运行Spring Initializr生成的Spring Boot项目(版本2.7.10-SNAPSHOT,JDK 11,Maven 3.6.3)的默认ApplicationTest JUnit测试时,出现以下错误:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
但通过命令行执行mvn clean test时,测试却能成功通过。项目的application.properties配置如下:
spring.datasource.username=postgres spring.datasource.password=password spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
可能的解决方案
检查STS的Maven配置是否使用本地Maven
STS默认可能自带内嵌Maven,导致和你本地使用的Maven 3.6.3环境不一致。操作步骤:- 打开STS,依次点击
Window > Preferences > Maven > Installations - 点击
Add,选择你本地Maven 3.6.3的安装目录,勾选该选项作为默认Maven - 点击
Apply and Close,然后右键项目选择Maven > Update Project,勾选Force Update of Snapshots/Releases后更新
- 打开STS,依次点击
确认测试类的配置加载路径
检查测试类上的@SpringBootTest注解是否带有额外的properties或classes参数,避免这些参数覆盖了默认的application.properties配置。清理STS的缓存和构建目录
STS的缓存可能导致配置未刷新:- 右键项目选择
Run As > Maven Clean - 接着执行
Run As > Maven Install - 点击STS菜单栏
Project > Clean,选择当前项目进行清理 - 重启STS后再次尝试运行测试
- 右键项目选择
检查数据源依赖是否正确引入
确认pom.xml中已正确引入PostgreSQL驱动依赖:<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <scope>runtime</scope> </dependency>若依赖缺失,STS可能无法识别数据源配置,而Maven命令行在构建时可能自动处理了依赖问题。
内容的提问来源于stack exchange,提问作者Timothy Vogel
相关产品推荐
相关产品推荐

