Android设置androidTestCompile

时间:2017-04-18 11:17:16

标签: android junit android-testing

我正在尝试在现有项目中设置androidTests。

根据Google的官方指南,我添加了以下依赖项:

    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'org.robolectric:robolectric:3.1.2'
    androidTestCompile 'org.assertj:assertj-core:3.5.2'
    androidTestCompile 'com.android.support:support-annotations:25.3.1'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test:rules:0.5'
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'

第一个问题是,APK中有多个confilicting文件(重复):

packagingOptions {
        pickFirst '.readme'
        pickFirst 'META-INF/LICENSE.txt'
        pickFirst 'META-INF/plexus/components.xml'
        pickFirst 'META-INF/NOTICE.txt'
        pickFirst 'META-INF/MANIFEST.MF'
        pickFirst 'licenses/thoughtworks.TXT'
        pickFirst 'licenses/javolution.license.TXT'
        pickFirst 'licenses/extreme.indiana.edu.license.TXT'
        pickFirst 'org/apache/maven/project/pom-4.0.0.xml'
        pickFirst 'org/codehaus/plexus/plexus-bootstrap.xml'
        pickFirst 'org/cyberneko/html/res/HTMLlat1.properties'
        pickFirst 'org/cyberneko/html/res/HTMLsymbol.properties'
        pickFirst 'org/cyberneko/html/res/XMLbuiltin.properties'
        pickFirst 'org/cyberneko/html/res/HTMLspecial.properties'
        pickFirst 'org/cyberneko/html/res/ErrorMessages_ja.properties'
        pickFirst 'org/cyberneko/html/res/ErrorMessages.properties'
        pickFirst 'org/cyberneko/html/res/ErrorMessages_ja.txt'
        pickFirst 'org/cyberneko/html/res/ErrorMessages.txt'
        pickFirst 'META-INF/LICENSE'
        pickFirst 'META-INF/DEPENDENCIES'
    }

排除重复项后,我最终得到了大约1700个关于类,超类和接口的警告,以及错误:

Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForMediadeDebugAndroidTest'.
> Job failed, see logs for details

我真的不知道在哪些部分需要进一步研究,以便进行测试。

编辑:以下是Gradle Logs

1 个答案:

答案 0 :(得分:1)

运行测试时无需运行ProGuard,因此您可以删除proguardFiles行并将minifyEnabled更改为 false

修改

要摆脱重复的依赖关系,您需要检查Gradle控制台日志以查找有关java.util.zip.ZipException: duplicate entry的行以查找多次添加的类。

一旦您知道哪些类是重复的,您可以按照此处的说明进行修复:Fixing ZipException: duplicate entry