如何使用Gradle在grails-core项目中运行单个测试?

时间:2014-12-01 18:47:31

标签: unit-testing grails gradle

我正在尝试将新的测试用例添加到org.codehaus.groovy.grails.web.mapping.ReverseUrlMappingTests项目的grails-test-suite-web子模块中的现有测试grails-core

https://github.com/grails/grails-core/blob/master/grails-test-suite-web/src/test/groovy/org/grails/web/mapping/ReverseUrlMappingTests.groovy

使用Gradle运行单个测试用例时遇到问题。当我这样做时:

./gradlew -Dtest.single=ReverseUrlMappingTests :grails-test-suite-web:test

结束于:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> Could not find matching test for pattern: ReverseUrlMappingTests

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

这个测试可以在完整的测试周期./gradlew test中运行,但是当我们想要只对一个简单的测试用例进行红绿重构时,浪费时间。我也注意到当我尝试以相同的方式运行spock.lang.Specification子类测试时会出现同样的问题。

以下是我的问题:是否可以使用Gradle运行单个grails-core测试?

它的grails-core 2.4.x分支克隆

1 个答案:

答案 0 :(得分:1)

该问题已经过编辑,表明测试是在2.4.x分支上,这会影响答案。我在下面做了相关修改。

这样的事情会起作用......

 ./gradlew :g-t-s-w:test --tests *ReverseUrlMappingTests*

当你这样做时,由于我们的构建方式,你仍然会运行其他一些测试。如果你想摆脱它们,你可以注释掉以下内容:

test.dependsOn execIsolatedTests

grails-test-suite-web/build.gradle位于https://github.com/grails/grails-core/blob/644233cfff266f391c44ef3ec56036a3b1c9bb19/grails-test-suite-web/build.gradle#L98

你也可以这样做......

./gradlew -DsingleTest.single=ReverseUrlMappingTests grails-test-suite-web:singleTest