Hibernate ORM(Gradle)如何仅运行单个测试类/指定测试用例
Hibernate ORM 定向运行测试的操作方法
所有命令均在本地项目根目录(即C:\projects\hibernate-orm)下执行,使用项目自带的Gradle Wrapper(gradlew)即可自动匹配项目要求的Gradle版本,无需依赖全局安装的Gradle。
运行指定测试文件对应的整个测试类全部用例
根据你的测试文件路径,可直接推导得到对应的全限定类名:org.hibernate.test.bytecode.enhancement.lazy.HHH_99999.LazyBasicLobFieldsBothUnexpectedlyInitializedTest
执行对应命令即可触发该类下所有测试用例,不会运行其他无关测试:
- macOS/Linux 环境:
./gradlew hibernate-core:test --tests "org.hibernate.test.bytecode.enhancement.lazy.HHH_99999.LazyBasicLobFieldsBothUnexpectedlyInitializedTest" - Windows CMD/PowerShell 环境:
gradlew.bat hibernate-core:test --tests "org.hibernate.test.bytecode.enhancement.lazy.HHH_99999.LazyBasicLobFieldsBothUnexpectedlyInitializedTest"
优化提示:在命令末尾追加--offline参数,跳过不必要的网络依赖校验,可将整体执行耗时压缩到2分钟以内。
运行测试类中的单个指定用例
如果仅需要运行类内某一个测试方法,只需在上述--tests参数指定的全类名后,追加.+具体测试方法名即可。例如需要运行类内名为testLazyBasicLobState的测试方法,对应命令为:./gradlew hibernate-core:test --tests "org.hibernate.test.bytecode.enhancement.lazy.HHH_99999.LazyBasicLobFieldsBothUnexpectedlyInitializedTest.testLazyBasicLobState"
常见注意事项
- 命令中必须指定目标模块为
hibernate-core:test,如果省略模块直接在根目录执行gradlew test,会触发全项目所有模块的测试,就是此前遇到的耗时10分钟以上的场景 --tests参数后的类名、方法名大小写必须和源码完全一致,否则Gradle无法匹配到对应测试,会直接跳过执行无输出- 若使用IDEA等IDE开发,可直接对着测试类/单个测试方法右键选择运行,IDE会自动生成等价的Gradle运行配置,无需手动书写命令
内容的提问来源于stack exchange,提问作者Kawu
相关产品推荐
相关产品推荐

