如何在 IntelliJ IDEA 中进行 Grails 3 集成测试

How to Grails 3 integration test in IntelliJ IDEA

我无法 运行 IntelliJ IDEA 中的集成测试。这是由 grails create-integration-test

生成的测试模板
@Integration
@Rollback
class TestServiceIntSpec extends Specification{
 void "test something"() {
   //some code here
 }
}

这是我尝试从 junit 配置 运行 时的输出:

Process finished with exit code 0
Empty test suite.

如果我从 IDE 中 运行 进行此测试,似乎也像使用开发环境的 grails,我必须通过 -Dgrails.env=test[=12= 明确指定环境]

Spock 测试 ('Specification') 通过 when:then:expect:

的存在来识别哪些方法是测试

HypeMK 的回答是正确的。详细来说,以下测试可能不会 运行 因为它不存在概述测试规范性质的 spock 关键字(期望、何时、然后等):

@TestFor(BeanFormTagLib)
class BeanFormTagLibSpec extends Specification {
    def setup() {}

    void "address setup"() {
        assertOutputEquals ('Hello World', '<g:beanFormTagLib domainName="com.myapp.Address" />');
    }
}

这里我们通过添加 "expect" 关键字来纠正问题:

@TestFor(BeanFormTagLib)
class BeanFormTagLibSpec extends Specification {
    def setup() {}
    void "address setup"() {
        expect:
        assertOutputEquals ('Hello World', '<g:beanFormTagLib domainName="com.myapp.Address" />');
    }
}