调试器、@SpringBootTest 和 Gradle
Posted
技术标签:
【中文标题】调试器、@SpringBootTest 和 Gradle【英文标题】:Debugger, @SpringBootTest, and Gradle 【发布时间】:2019-11-29 20:29:19 【问题描述】:我是 Spring Boot 和 Gradle 的新手,不知道如何暂停 JUnit 测试并使用调试器连接到它们。
我在命令行gradlew build
上调用自动化测试。我想要的是在它到达测试任务并等待调试器连接时暂停执行。
JUnit 测试类的注释如下:
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
@AutoConfigureMockMvc
我尝试将用于调试的 JVM 参数添加到 gradle.properties 文件中,但我仍然无法将其挂起,更不用说侦听调试器的端口了。我不确定要为您提供什么信息 - 在 cmets 中向我询问文件、代码或设置。
Gradle 5.5 Spring Boot 2.16 Java 11【问题讨论】:
嗨 ahoffer,为什么不在 IDE 中以调试模式运行测试?你对通过 gradlew build 的终端有什么特殊要求吗? 当我使用 IntelliJ 运行测试时,所有测试都通过了。当我从命令行运行它们时,有六个测试失败了。我不知道为什么从命令行运行时会出现 Tomcat 异常。我想我也许可以调试它并找出原因。 也许这会有所帮助:***.com/questions/22760752/… 【参考方案1】:@奥米德。谢谢你的链接。解决方法很简单。
更新:不要使用gradlew build
。请改用test
任务。
gradlew test --debug-jvm
在 Gradle 5.5.1 文档中: https://docs.gradle.org/current/userguide/java_testing.html#sec:debugging_java_tests
【讨论】:
以上是关于调试器、@SpringBootTest 和 Gradle的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis的mapper使用springbootTest报错Find why ‘xxxMapper‘ could be null
Mybatis的mapper使用springbootTest报错Find why ‘xxxMapper‘ could be null
SpringBootTest - 如何在测试级别断言上下文不加载和更改属性?
使用 SpringBootTest 和 Autowired 注解时 LogCaptor 无法捕获