gpt4 book ai didi

GRAILS 2.4.4 : how to run unit tests only, 或如何修复生成的集成测试?

转载 作者:行者123 更新时间:2023-11-28 20:04:01 24 4
gpt4 key购买 nike

使用 grails 2.4,例如,当您创建一个 Controller 时,它会创建一个单元测试类,例如:

@TestFor(SessionService)
class SessionServiceSpec extends Specification {

def setup() {
}

def cleanup() {
}

void "test something"() {
}
}

因此您创建了 20 个 Controller ,并获得了 20 个测试类。

当您尝试运行 grails test-app 时,它失败并出现以下错误:

java.lang.Exception: 
No tests found matching grails test target pattern filter from org.junit.runner.Request

它永远无法运行我们的集成测试。

因此 Grails 为您创建的测试不是开箱即用的。

我们可以删除所有已创建的测试规范类,但如果我们想编写它们,我们希望它们已经准备就绪。

  1. 有没有办法运行我们的集成测试,而不运行单元测试(已损坏)或:
  2. 有没有办法修复测试,以免他们摔倒?有人发布了 add a valid when/then,但我们不知道该放什么,因为我们尝试过的仍然会产生相同的异常。

遗憾的是 Grails 没有告诉您哪个测试或类抛出此异常。

最佳答案

在我看来,这是一个奇怪的论点。当您创建 Controller 时,默认情况下会根据可以根据您的需要轻松定制的模板为其创建单元规范。

grails install-templates

为你做。现在回答你的问题:

  1. 是的,有一种方法可以只运行集成测试。

    grails 测试应用集成:

  2. 使用install-templates后修改src\templates\testing下的Controller.groovy模板

喜欢:

@artifact.package@import grails.test.mixin.TestFor
import spock.lang.Specification

/**
* See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin}
* for usage instructions
*/
@TestFor(@artifact.testclass@)
class @artifact.name@ extends Specification {

def setup() {
}

def cleanup() {
}

void "test something"() {
expect:
1 == 1
}
}

这不会在运行时使您的测试失败,但它会破坏

的全部目的

writing failing test -> modify code -> fixing test approach

测试驱动开发。我宁愿实现一个失败的测试,然后在 Controller 中编写最少的逻辑来通过测试。

关于GRAILS 2.4.4 : how to run unit tests only, 或如何修复生成的集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27846185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com