You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grails 3.3.2中如何通过CLI运行单个集成测试/测试类

解决Grails 3.3.2运行单个测试/测试类的问题

我来帮你搞定这个困扰!Grails 3.x(包括你使用的3.3.2版本)底层基于Gradle,所以运行单个测试的命令和旧版Grails 2完全不同——你之前尝试的都是Grails 2的参数,这就是为什么不管用啦。

正确的命令用法

1. 运行单个集成测试类

如果你要运行指定包下的ClassSpec集成测试类,用以下命令:

grails test-app integration-test --tests "your.package.path.ClassSpec"

或者直接使用Gradle原生命令(效果完全一致,Grails的test-app本质是调用Gradle任务):

# Linux/Mac
./gradlew integrationTest --tests "your.package.path.ClassSpec"

# Windows
gradlew.bat integrationTest --tests "your.package.path.ClassSpec"

2. 运行单个测试方法

如果只想执行测试类里的某个特定方法,比如testUserLogin,只需要在类名后加上方法名:

grails test-app integration-test --tests "your.package.path.ClassSpec.testUserLogin"

为什么你之前的命令无效?

  • -Dtest.single=package.ClassSpec:这是Grails 2专属的参数,Grails 3已经完全弃用了这个配置,所以不会生效。
  • test-app *ClassSpec* -integration:这种通配符写法在Grails 3里会匹配到所有名称包含ClassSpec的测试类甚至相关任务,这就是为什么你看到执行了10个任务,而不是目标单个测试类。

额外注意事项

  • 包名和类名必须完全匹配(包括大小写),否则会找不到测试类。
  • 确保在项目根目录下执行命令,否则Gradle/Grails无法识别项目结构。

内容的提问来源于stack exchange,提问作者Mateusz Cieslak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:35:12