Gradle - jUnit测试中的性能不佳

vit*_*dze 6 performance junit gradle

我们正在从ant构建脚本转向gradle.在我们开始运行jUnit集成测试之前,一切看起来都很好.在夜间运行需要大约2个小时(通过蚂蚁),但用gradle运行相同的测试大约需要5个小时.这很奇怪.通过简短的调查,我发现测试类中的方法数量存在一定的相关性.数字越大,测试越慢.现在我正在运行一个包含28种测试方法的测试类.从蚂蚁或从eclipse或intellij想法运行需要1分钟,而从gradle运行相同的测试需要3分30秒.我尝试使用1.8和1.9 gradle.

测试任务:

task testSingle(type: Test) {
    classpath = configurations.coreTest

    maxHeapSize = '1G'
    jvmArgs '-XX:MaxPermSize=192M'

    include 'com/test/core/CAllocateGainTest*'
}
Run Code Online (Sandbox Code Playgroud)

请看屏幕截图

  • 用gradle运行测试

内存使用情况

  • Gradle过程

  • 有jUnit测试的分叉的gradle工作者

  • 在eclipse中运行相同的测试

Eclipse设置

UPDATE

当我使用具有类似配置的ant的junit任务时(参见下面的代码片段),测试运行就好了:

task testAllocateGains() {
    ant.junit(fork: 'yes', maxmemory: '1G') {
        formatter(type: 'xml')
        classpath(path: configurations.coreTest.asPath)

        jvmarg(value: '-XX:MaxPermSize=129M')

        batchtest(todir: 'build/test-results') {
            fileset(dir: 'build/classes/test') {
                include (name: 'com/test/core/CAllocateGainTest*')
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

$ gradle testAllocateGains
:testAllocateGains UP-TO-DATE

BUILD SUCCESSFUL

Total time: 1 mins 15.575 secs
Run Code Online (Sandbox Code Playgroud)

内存使用情况

  • Gradle过程

  • 分叉的ant jUnit进程

有谁知道如何描述这个问题?