IntelliJ 2018.1无法运行Spring Boot集成测试问题
我之前升级IntelliJ版本时也碰到过类似的坑,结合你的场景(Gradle构建+Spring Boot集成测试),给你几个实用的排查和解决方向:
检查IntelliJ的Gradle运行配置
打开File → Settings(快捷键Ctrl+Alt+S),找到Build, Execution, Deployment → Build Tools → Gradle。确保Build and run using和Run tests using这两个选项都设置为Gradle,而不是IntelliJ IDEA自带的runner。2018.1版本对Gradle测试的处理逻辑做了调整,用IDE自带的runner很容易和Spring Boot的集成测试上下文冲突。刷新Gradle项目并清理缓存
先在右侧Gradle面板点击刷新图标(🔄)重新同步项目,升级IDE后项目的依赖缓存或配置残留经常会导致这类问题。如果刷新没用,试试File → Invalidate Caches...,选择"Invalidate and Restart",彻底清除IDE的缓存,很多奇怪的兼容性问题都能靠这个解决。确认集成测试目录的配置
如果你的MyServiceIT放在src/integrationTest/java目录下,要确保Gradle的sourceSets里正确配置了集成测试源:sourceSets { integrationTest { java.srcDir file('src/integrationTest/java') resources.srcDir file('src/integrationTest/resources') compileClasspath += main.output + test.output runtimeClasspath += main.output + test.output } }同时在IntelliJ里右键这个目录,选择
Mark Directory as → Test Sources Root,让IDE识别这是测试代码目录。验证Spring Boot与Gradle版本兼容性
IntelliJ 2018.1对较新的Spring Boot和Gradle版本支持更完善,如果你的项目用的是Spring Boot 1.x或者Gradle 3.x这类旧版本,可能会出现兼容性问题。可以尝试升级到Spring Boot 2.0+和Gradle 4.0+(注意提前评估项目依赖的兼容性)。直接通过Gradle命令运行测试
在IntelliJ的Terminal里执行./gradlew integrationTest(Windows系统用gradlew.bat integrationTest),如果这个命令能正常运行测试,那基本可以确定是IDE的runner配置问题,回到第一步调整Gradle运行设置即可。
内容的提问来源于stack exchange,提问作者Axel Meier

