当我通过gradle在命令行上运行我的jUnit测试时,我得到了java.lang.UnsatisfiedLinkError,但是在AndroidStudio上运行它运行正常

时间:2015-04-07 19:03:28

标签: junit android-studio gradle robolectric

所以我终于设法让我的android工作室运行与robolectric集成的JUnit测试,这样我就可以在设备或模拟器上运行http调用和其他事情。遵循这里创造奇迹的结构:https://github.com/robolectric/deckard-gradle

现在,我设法在AndroidStudio上运行得很好,但是我想设置一个cron以便它可以自动运行,并且当通过gradle通过命令行执行测试时我得到" java.lang.UnsatisfiedLinkError :java.library.path"中没有pjsua。请注意,我们的代码使用我们单独编译的pjsip lib代码,并将.so文件放在jniLibs文件夹中。我有另一个jUnit测试非常简单,无论是通过gradle命令行还是AndroidStudio,都可以正常工作。

我从http://tools.android.com/tech-docs/unit-testing-support跟随的gradle命令是:
1)./gradlew测试 - 继续

2)./gradlew test -Dtest.single = Test.java

这是我们的gradle文件对应用层的外观:

apply plugin: 'com.android.application'

android {  
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "com.foo.test"
    minSdkVersion 14
    targetSdkVersion 21
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    ndk {
        moduleName "libpjsua"
    }
}

sourceSets {
    main {
        jni.srcDirs = []
    }
}

signingConfigs {
// hidden
}

buildTypes {
    release {
        signingConfig signingConfigs.release
    }
    debug {
    }
}
}

dependencies {  
    compile fileTree(dir: 'libs', include: '*.jar')  
    compile 'com.android.support:appcompat-v7:21.0.3'  
    compile files('libs/android-logging-log4j-1.0.3.jar')  
    compile files('libs/libphonenumber-6.2.jar')  
    compile files('libs/log4j-1.2.17.jar')  
    compile files('libs/nineoldandroids-2.4.0.jar')  
    compile files('libs/ostermillerutils_1_07_00.jar')  

// dependencies to do automation testing
testCompile 'junit:junit:4.12'
testCompile 'org.hamcrest:hamcrest-core:1.1'
testCompile 'org.hamcrest:hamcrest-library:1.1'
testCompile 'org.hamcrest:hamcrest-integration:1.1'
testCompile('org.robolectric:robolectric:2.4') {
    exclude module: 'classworlds'
    exclude module: 'commons-logging'
    exclude module: 'httpclient'
    exclude module: 'maven-artifact'
    exclude module: 'maven-artifact-manager'
    exclude module: 'maven-error-diagnostics'
    exclude module: 'maven-model'
    exclude module: 'maven-project'
    exclude module: 'maven-settings'
    exclude module: 'plexus-container-default'
    exclude module: 'plexus-interpolation'
    exclude module: 'plexus-utils'
    exclude module: 'wagon-file'
    exclude module: 'wagon-http-lightweight'
    exclude module: 'wagon-provider-api'
}
}

有没有人有任何想法?非常感谢,现在已经有好几天了。

0 个答案:

没有答案