【问题标题】:grails test-app -coverage doesn't include coverage for functional tests in forked modegrails test-app -coverage 不包括分叉模式下功能测试的覆盖率
【发布时间】:2014-07-15 13:26:46
【问题描述】:

当我运行grails test-app -coverage 时,我无法理解 Grails 分叉模式以及它如何影响代码覆盖率报告。我正在使用 Grails 2.3.1。

我为测试配置关闭了分叉模式

grails.project.fork = [... test: false  ... ]

单元测试显示在覆盖率报告中。

但是,功能测试的覆盖率不包含在 Cobertura 输出中。

如果我也关闭了run 选项的分叉模式,那么我确实会从 Cobertura 报告中的功能测试中获得覆盖率。

问题:

  • 为什么run 的分叉模式会影响覆盖率输出?不是同样的检测类也部署到嵌入式 Tomcat?

  • 有没有办法在运行应用程序中正常使用分叉模式,但在 test-app -functional 附带启动以进行测试时却没有?

【问题讨论】:

    标签: grails


    【解决方案1】:

    问题应该在https://github.com/beckje01/grails-code-coverage/issues报告。

    是的,有一种方法可以将分叉模式用于运行应用程序,但不能用于测试应用程序。在BuildConfig.groovy 你可以这样做:

    grails.project.fork = [
        test: false,
        run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
        war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
        console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
    ]
    

    这可能不会以您想要的方式影响功能测试,但会影响其他测试。

    编辑:

    https://github.com/beckje01/grails-code-coverage/issues/11

    这可能对功能测试没有帮助,可能需要作为一个单独的问题来解决。

    【讨论】:

    • 我会再次报告覆盖插件的问题,但它可能最终与功能测试插件中的代码及其启动应用程序的方式有关。
    • 更改 test:false 对功能测试没有帮助。这似乎是由run 设置驱动的。有没有办法可以有条件地更改run 设置?
    • 我没有使用功能测试插件 - 我在测试/功能下使用 Geb - 问题不在 Geb 中,而是在 grails test-app 中,它内联启动应用程序
    • “问题不在 Geb 而在 grails test-app”。我的错。祝你好运。
    • 如果问题出在 grails test-app 中,请在jira.grails.org/browse/GRAILS 提交 JIRA,我会看看。
    猜你喜欢
    • 2011-08-02
    • 2012-05-06
    • 1970-01-01
    • 2017-10-09
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多