Android gradle单元测试找不到库

标签 android gradle

在开始编写单元测试之前,我一直很喜欢使用 gradle。我目前遇到的问题是我的 gradle 构建在运行单元测试时找不到 ActionBarPullToRefresh 布局。我的gradle构建文件如下

buildscript {
repositories {
    mavenCentral()
}
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}
apply plugin: 'android'

sourceSets {
    unitTest {
        java.srcDir file('src/main/java/com/smartsocialmedia/tests')
        resources.srcDir file('src/main/res/com/smartsocialmedia/tests')
        java.srcDirs = ['src/main/java/com/smartsocialmedia']
    }
}

configurations {
    unitTestCompile.extendsFrom runtime
    unitTestRuntime.extendsFrom unitTestCompile
}

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 19
    versionCode 7
    versionName "1.0.5"
    testPackageName "com.smartsocialmedia.tests"
    testInstrumentationRunner "android.test.InstrumentationTestRunner"
    //testHandlingProfiling true
    testFunctionalTest true
}

buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile 'org.apache.httpcomponents:httpmime:4.1.2@jar'
    compile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'
    compile files('libs/universal-image-loader-1.9.1-with-sources.jar')

    repositories {
        mavenCentral()
    }
    unitTestCompile files("$project.buildDir/classes/release")
    unitTestCompile 'junit:junit:4.10'
    unitTestCompile 'org.robolectric:robolectric:2.1.+'
    unitTestCompile 'com.google.android:android:4.0.1.2'
    unitTestCompile 'com.google.android:android-test:4.1.1.4'
    unitTestCompile files('libs/universal-image-loader-1.9.1-with-sources.jar')
    unitTestCompile 'org.apache.httpcomponents:httpmime:4.1.2@jar'
    unitTestCompile 'com.android.support:support-v4:18.0.0'
    unitTestCompile 'com.github.chrisbanes.actionbarpulltorefresh:library:+'

}

task unitTest(type:Test, dependsOn: assemble) {
    testClassesDir = project.sourceSets.unitTest.output.classesDir
    classpath = project.sourceSets.unitTest.runtimeClasspath
}
check.dependsOn unitTest

基本上我想做的就是拥有这个 https://github.com/chrisbanes/ActionBar-PullToRefresh我的单元测试中包含的库。

最佳答案

我想测试“module-a”中的一个类,该类从另一个模块中导入 module-b .我无法在“module-a”中运行测试,因为它引用了仅适用于 module-b 的导入所以我把类(class)搬到了module-b .

引用module-a来自 module-b我在 build.gradle 中这样做了的 module-b

sourceSets {
    test.java.srcDirs = [
            "${rootProject.getRootDir()}/path/to/module-a",
            "${rootProject.getRootDir()}/path/to/module-b"

    ]
}

在那之后我有一个错误说我应该检查类路径和 .jar 库 module-b取决于没有编译。

所以在module-b的build.gradle中, 在 dependencies{..}

api fileTree(dir: 'libs', include: ['*.jar'])

注意 api , 它是 implementation但它没有用。

希望这对某人有帮助!

关于Android gradle单元测试找不到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639383/

相关文章:

android - 无法为min = targetSdkVersion = 10的应用添加支持库

android - 更改软件包名称,现在在应用程序中会出现一个弹出窗口

android-studio - 无法使用Gradle发行版本执行构建

java - Firebase 设置-错误 : Failed to resolve: com. google.firebase :firebase-core:12. 0.1

android - Activity 之外的 Firebase 数据库 EventListener

Android小部件在一定时间后没有响应

java - 我在哪里可以找到适用于希望切换到 Android 手机上工作的 iphone 开发人员的易于遵循的过渡方法?

android - 混淆器错误 : "Exception while processing task java.io.IOException: Please correct the above warnings first"

android - VectorDrawable - 它是否可用于 Android 的 Lollipop 前版本?

android - 将地理编码器地址缩小到仅城市