0

首先,我对缺乏为 Grails 实施前端测试的文档感到震惊。GroovyPagesTestCase 类使测试变得超级简单,如此简单,FE 开发人员没有理由不进行测试。但无论如何,这是我的问题。在我的工作中,我使用 Maven 运行 Grails。当我需要运行测试时,执行测试的唯一成功命令是:

mvn grails:test-app

并运行所有测试。但是,我真的想在测试驱动代码时更快地移动,有人知道如何只在这种环境下运行集成测试吗?没有找到我自己的任何东西。

4

3 回答 3

3

用于此的 grails 命令是grails test-app :integration.

鉴于此,我相信您应该能够使用 grails:exec 目标来运行任意命令,例如 - mvn grails:exec -Dcommand=test-app -Dargs=:integration

不太确定 mvn 将如何处理等号后的冒号。:integration如果香草语法不能削减它,您可以尝试使用引号或双引号。

这基于http://grails.org/doc/latest/guide/commandLine.html#4.5 Ant 和 Maven。

更新:grails test-app -unit并且grails test-app -integration也受支持,这可能更符合 Maven 的喜好。

于 2013-06-14T16:36:12.773 回答
2

Grails 1.x

mvn -Dargs=CircleTests -Dcommand=test-app grails:exec
mvn grails:test-app will always execute all tests

最好将其与-unit/结合起来,-integration以避免为其他阶段进行耗时的准备(示例使用名为 的测试CircleTests;删除参数中的后缀):

mvn -Dargs="-unit Circle" -Dcommand=test-app grails:exec

您可以使用模式和多个名称,以空格分隔:

mvn "-Dargs=Square Ci*le" -Dcommand=test-app grails:exec

Grails 还理解特殊的 -unit 和 -integration 名称:

mvn -Dargs=-unit -Dcommand=test-app grails:exec

或者运行一个方法:

mvn -Dargs=Circle.DrawSmallEllipse -Dcommand=test-app grails:exec

Grails 2.x

在新的 Grails 版本中,这不再起作用,因为 grails:exec 在开发模式而不是测试模式下运行。您现在可以执行以下任一操作:

mvn -Dgrails.cli.args="integration: Circle" grails:test-app
mvn -Dgrails.cli.args="-integration Circle" grails:test-app
mvn -Dgrails.env=test -Dargs="integration: Circle" -Dcommand=test-app grails:exec
于 2014-07-30T12:32:30.997 回答
0

在 grails 2.x 上,这对我最有效:

所有集成测试:

mvn grails:exec -Dgrails.env=test -Dcommand=test-app -Dargs=:integration

单测试类:

mvn grails:exec -Dgrails.env=test -Dcommand=test-app -Dargs=:integration -Dargs=NameOfYourIntegrationTests

测试类中的单个方法:

mvn grails:exec -Dgrails.env=test -Dcommand=test-app -Dargs=:integration -Dargs=NameOfYourIntegrationTests.testMethod

希望能帮助到你

于 2015-10-28T23:55:59.817 回答