Testing Grails与Maven的集成测试

Testing Grails与Maven的集成测试,testing,grails,maven,integration,Testing,Grails,Maven,Integration,首先,我对缺乏实现Grails前端测试的文档感到震惊。GroovyPagesTestCase类使测试变得非常简单,因此FE开发人员没有理由不进行测试。但不管怎样,这是我的问题。在我的工作中,我与Maven一起运行Grails。当我需要运行测试时,执行测试的唯一成功命令是: mvn grails:test-app 这将运行所有测试。但是,我真的想在测试驱动代码时加快速度,有人知道如何只在这种环境中运行集成测试吗?我自己找不到任何东西。用于此的grails命令是grails测试应用程序:integ

首先,我对缺乏实现Grails前端测试的文档感到震惊。GroovyPagesTestCase类使测试变得非常简单,因此FE开发人员没有理由不进行测试。但不管怎样,这是我的问题。在我的工作中,我与Maven一起运行Grails。当我需要运行测试时,执行测试的唯一成功命令是:

mvn grails:test-app

这将运行所有测试。但是,我真的想在测试驱动代码时加快速度,有人知道如何只在这种环境中运行集成测试吗?我自己找不到任何东西。

用于此的grails命令是
grails测试应用程序:integration


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

不太确定mvn将如何处理等号后的冒号。如果普通语法无法解决此问题,您可以尝试使用引号或双引号括起
:integration

这是基于Ant和Maven的


更新:还支持
grails测试应用程序-unit
grails测试应用程序-integration
,这可能更符合Maven的喜好。

用于此的grails命令是
grails测试应用程序:integration


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

不太确定mvn将如何处理等号后的冒号。如果普通语法无法解决此问题,您可以尝试使用引号或双引号括起
:integration

这是基于Ant和Maven的

更新:
grails测试应用程序-unit
grails测试应用程序-integration
也受支持,这可能更符合Maven的喜好。

grails 1.x 最好将其与
-unit
/
-integration
相结合,以避免为另一个阶段做耗时的准备(示例使用名为
CircleTests
的测试;在参数中删除后缀):

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

mvn "-Dargs=Square Ci*le" -Dcommand=test-app grails:exec
Grails还理解特殊的单元和集成名称:

mvn -Dargs=-unit -Dcommand=test-app grails:exec
或运行单个方法:

mvn -Dargs=Circle.DrawSmallEllipse -Dcommand=test-app grails:exec
Grails2.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
Grails1.x 最好将其与
-unit
/
-integration
相结合,以避免为另一个阶段做耗时的准备(示例使用名为
CircleTests
的测试;在参数中删除后缀):

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

mvn "-Dargs=Square Ci*le" -Dcommand=test-app grails:exec
Grails还理解特殊的单元和集成名称:

mvn -Dargs=-unit -Dcommand=test-app grails:exec
或运行单个方法:

mvn -Dargs=Circle.DrawSmallEllipse -Dcommand=test-app grails:exec
Grails2.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
测试类中的单个方法:

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

希望它对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
测试类中的单个方法:

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

希望对您有所帮助

您使用的是哪个版本的Grails?我们使用Grails2.1.0。我们的所有依赖项都在pom文件中声明,BuildConfig.groovy声明“pom true”。这允许我们使用Maven构建和测试项目,也允许我们使用Grails命令运行和测试。我们使用的是2.1.0和1.7.xx之前的版本,我想我会尝试您的建议,您使用的是哪一版本的Grails?我们使用Grails2.1.0。我们的所有依赖项都在pom文件中声明,BuildConfig.groovy声明“pom true”。这允许我们使用Maven构建和测试项目,但也允许我们使用Grails命令运行和测试。我们使用的是2.1.0和1.7.xx之前的版本,我想我将尝试您的建议
mvn Grails:exec-Dcommand=test app-Dargs=“-integration”
-如果您仍然怀疑mvn处理
:-)
mvn grails:exec-Dcommand=test-app-Dargs=“-integration”
-如果您仍然怀疑mvn处理
:-)