首先,我对缺乏实施Grails前端测试的文档感到震惊。 GroovyPagesTestCase类使测试变得非常容易,因此没有理由让FE Devs不测试。但无论如何,这是我的问题。在我的工作中,我正在和Maven一起运行Grails。当我需要运行我的测试时,执行测试的唯一成功命令是:
mvn grails:test-app
并运行所有测试。但是,我真的希望在测试驱动代码时更快地移动,有谁知道如何只在这种环境中运行集成测试?我自己找不到任何东西。
答案 0 :(得分:3)
grails命令是grails test-app :integration
。
鉴于此,我相信您应该能够使用grails:exec目标来运行任意命令,如此mvn grails:exec -Dcommand=test-app -Dargs=:integration
。
不太确定mvn在等号后如何处理冒号。如果vanilla语法不会删除它,您可以在:integration
周围尝试引号或双引号。
这基于http://grails.org/doc/latest/guide/commandLine.html#4.5 Ant和Maven。
更新:grails test-app -unit
和grails test-app -integration
也受支持,这可能更符合Maven的喜好。
答案 1 :(得分:2)
mvn -Dargs=CircleTests -Dcommand=test-app grails:exec
mvn grails:test-app will always execute all tests
最好将其与-unit
/ -integration
结合使用,以避免为其他阶段进行耗时的准备工作(示例使用名为CircleTests
的测试;在参数中删除后缀):< / p>
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
答案 2 :(得分: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
希望有所帮助