在Grails中快速运行单一集成测试

Pra*_*ash 9 testing grails groovy integration-testing

是否可以在Grails中快速运行单个/所有集成测试.测试应用程序带来了清除所有已编译文件和生成cobertura报告的沉重包袱,因此即使我们运行单一集成测试,整个代码库也会被编译,检测并生成cobertura报告.对于我们的应用程序,这需要超过2分钟.

如果可以快速运行一个集成测试并获得快速反馈,那将非常有用.

此外,一旦测试完成,清理所有已编译的文件是否很重要?如果我们运行整套集成测试,这种清理很好,但是如果我们要在一个类中运行一个或两个测试,那么清理和重新编译似乎是一个很大的瓶颈,可以更快地向开发人员反馈.

谢谢

Dón*_*nal 15

如果您有集成测试类

class SimpleControllerTests extends GrailsUnitTestCase {
    public void testLogin() {}
    public void testLogin2() {}
    public void testLogin3() {}
}
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令在此类中运行一个测试:

grails test-app integration: SimpleController.testLogin
Run Code Online (Sandbox Code Playgroud)

但是,您仍然需要承担集成测试所需的时间损失(加载配置,连接到DB,实例化Spring bean等)

如果您希望测试快速运行,那么尝试编写单元测试而不是集成测试.


Dan*_*ann 5

它是集成测试的意图做这整个编译,数据的基础上创建,服务器启动,等等,因为测试应该在集成环境中运行,顾名思义.

也许你可以提取一些测试单元测试.这些可以在Eclipse中运行.

您可以通过在grails-app/conf/BuildConfig.groovy中放置以下代码来关闭Cobertura:

coverage {
    enabledByDefault = false
}
Run Code Online (Sandbox Code Playgroud)