【问题标题】:gradle configuration for powermock 1.7.4 and mockito 1.10.19powermock 1.7.4 和 mockito 1.10.19 的 gradle 配置
【发布时间】:2018-11-29 02:05:43
【问题描述】:

我正在尝试使用 Gradle 使用 PowerMock 1.7.4 版和 Mockito 1.10.19 版运行 Java 测试。

PowerMock 1.7.4 对两者都有传递依赖

org.mockito » mockito-core 1.10.19 和上 org.mockito » mockito-core 2.8.9

(见https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito-common/1.7.4

为了不引入 Mockito 2.8.9,而是针对 Mockito 1.10.19 编译和运行测试,我必须执行以下操作(因为 powermock jar 中存在各种传递依赖项):

testCompile ("org.mockito:mockito-core:${versions.mockito}") {
    exclude group: 'org.hamcrest', module: 'hamcrest-core'
}

testCompile ("org.powermock:powermock-api-mockito-common:${versions.powermock}") {
    exclude group: 'org.mockito', module: 'mockito-core'
}

testCompile ("org.powermock:powermock-api-mockito:${versions.powermock}") {
    exclude group: 'org.mockito', module: 'mockito-core'
}

testCompile ("org.powermock:powermock-core:${versions.powermock}") {
    exclude group: 'org.mockito', module: 'mockito-core'
}

testCompile ("org.powermock:powermock-module-junit4:${versions.powermock}") {
    exclude group: 'org.powermock', module: 'powermock-module-junit4-common'
}

testCompile ("org.powermock:powermock-module-junit4-common:${versions.powermock}") {
    exclude group: 'org.powermock', module: 'powermock-core'
}

testCompile ("org.powermock:powermock-api-support:${versions.powermock}") {
    exclude group: 'org.powermock', module: 'powermock-core'
}

testCompile ("org.powermock:powermock-api-easymock:${versions.powermock}") {
    exclude group: 'org.powermock', module: 'powermock-api-support'
}

testCompile ("org.powermock:powermock-module-javaagent:${versions.powermock}") {
    exclude group: 'org.powermock', module: 'powermock-core'
}

testCompile ("org.powermock:powermock-module-junit4-rule-agent:${versions.powermock}") {
    exclude group: 'org.powermock', module: 'powermock-core'
}

testRuntime("org.mockito:mockito-core:${versions.mockito}") {
    exclude group: 'org.hamcrest', module: 'hamcrest-core'
}

版本在哪里:

versions = [
        'mockito': '1.10.19',
        'powermock': '1.7.4'
]

在 Gradle 中肯定有更好、更简洁的方法,对吧?

【问题讨论】:

    标签: java gradle configuration mockito powermock


    【解决方案1】:

    一种压缩方式,仅不包括mockito-core

    testCompile ("org.mockito:mockito-core:${versions.mockito}") {
        exclude group: 'org.hamcrest', module: 'hamcrest-core'
    }
    
    ['powermock-api-mockito-common',
    'powermock-api-mockito',
    'powermock-core',
    'powermock-module-junit4',
    'powermock-module-junit4-common',
    'powermock-api-support',
    'powermock-api-easymock',
    'powermock-module-javaagent',
    'powermock-module-junit4-rule-agent'].each {
        testCompile ("org.powermock:${it}:${versions.powermock}") {
            exclude group: 'org.mockito', module: 'mockito-core'
        }  
    }
    

    此外,testRuntime mockito-core 没用,因为 testRuntime extends testCompile

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 2015-01-02
      • 2011-08-27
      相关资源
      最近更新 更多