繁体   English   中英

使用Maven进行Grails集成测试

[英]Grails Integration Tests with Maven

首先,我对缺少用于实施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语法无法使用,您可以在:integration周围使用双引号或双引号。

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

更新:还支持grails test-app -unitgrails test-app -integration ,这可能更符合Maven的喜好。

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

在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

希望能帮助到你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM