我正在玩最近发布的grails 2.3.0。不幸的是,test-app无法识别测试。以下是我为解决问题所做的工作。
首先,制作一个新应用并创建一个控制器:
$ grails create-app firstApp
$ cd firstApp/
$ grails create-controller foo
我从创建控制器foo获得了以下文件:
| Created file grails-app/controllers/firstapp/FooController.groovy
| Created file grails-app/views/foo
| Created file test/unit/firstapp/FooControllerSpec.groovy
然后,我通过在自动生成的方法FooControllerSpec.groovy
中添加assert 1 == 2
来编辑文件void "test something"()
。以下是我编辑后FooControllerSpec.groovy
的完整内容:
package firstapp
import grails.test.mixin.TestFor
import spock.lang.Specification
/**
* See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage instructions
*/
@TestFor(FooController)
class FooControllerSpec extends Specification {
def setup() {
}
def cleanup() {
}
void "test something"() {
assert 1 == 2
}
}
然后我运行了以下命令:
$ grails test-app
但是,没有进行任何测试。以下是该命令的输出:
| Completed 0 unit test, 0 failed in 0m 0s
| Tests PASSED - view reports in /Users/jianbao.tao/projects/grails/firstApp/target/test-reports
我的平台是OS X 10.8.5 + grails 2.3.0 + Java 1.6.0_51 + groovy 2.1.6。谁能告诉我这里发生了什么事,拜托?提前谢谢。
答案 0 :(得分:8)
Grails 2.3.0默认附带spock测试框架。因此,测试应该如下:
void "test something"() {
expect:
1 == 2
}
有关spockframework的详细信息,请访问docs。