testProguardFiles忽略了我的规则。无法针对发布版本类型运行Espresso测试

问题描述 投票:1回答:1

我很乐意针对发布版本类型运行我的Android测试测试。这就是我做的。

根据推荐的here更改了测试构建类型:

android {

    testBuildType "release"
}

proguard-test-rules.pro目录中创建了app/并将其添加到发布版本类型部分:

buildTypes {

    release {
        signingConfig signingConfigs.release

        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-test-rules.pro'
    }
}

proguard-test-rules.pro包含唯一的一行:

-dontwarn okio.**

但是,当我运行命令./gradlew clean connectedMyFlavorReleaseAndroidTest时,我在控制台输出中看到以下错误:

Warning: okio.Okio: can't find referenced class java.nio.file.Files

所以看起来proguard-test-rules.pro被忽略了。为什么?当然我可以使用this solution,但我只是想知道为什么proguard-test-rules.pro被忽略了。我也尝试过proguardFile 'proguard-test-rules.pro'也没用。

我的Gradle

classpath 'com.android.tools.build:gradle:3.0.1'
android proguard android-espresso
1个回答
1
投票

要让Android读取.pro文件,您需要告诉它接受它:

https://issuetracker.google.com/issues/37104292

buildTypes {

 release {
    signingConfig signingConfigs.release
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
    //Something like this
    proguardFiles fileTree(dir: 'vendor', include: ['*.pro']).asList().toArray()

    testProguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-test-rules.pro'
 }
}

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.