首先,我对缺乏为 Grails 实施前端测试的文档感到震惊。GroovyPagesTestCase 类使测试变得超级简单,如此简单,FE 开发人员没有理由不进行测试。但无论如何,这是我的问题。在我的工作中,我使用 Maven 运行 Grails。当我需要运行测试时,执行测试的唯一成功命令是:
mvn grails:test-app
并运行所有测试。但是,我真的想在测试驱动代码时更快地移动,有人知道如何只在这种环境下运行集成测试吗?没有找到我自己的任何东西。
首先,我对缺乏为 Grails 实施前端测试的文档感到震惊。GroovyPagesTestCase 类使测试变得超级简单,如此简单,FE 开发人员没有理由不进行测试。但无论如何,这是我的问题。在我的工作中,我使用 Maven 运行 Grails。当我需要运行测试时,执行测试的唯一成功命令是:
mvn grails:test-app
并运行所有测试。但是,我真的想在测试驱动代码时更快地移动,有人知道如何只在这种环境下运行集成测试吗?没有找到我自己的任何东西。
用于此的 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 的喜好。
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 版本中,这不再起作用,因为 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
在 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
希望能帮助到你