android - 如何在 Android Studio 中将我的 Android 测试库与我的应用程序库分开?

标签 android android-studio gradle integration-testing android-gradle-plugin

我在 build.gradle 文件中设置了我的模块依赖项:

dependencies
{
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.android.support:support-v4:22.2.0'
   androidTestCompile fileTree(dir: 'libs/test', include: ['*.jar'])
}

在我的 libs 文件夹中,我拥有构建我的应用程序所需的所有库。我将运行测试所需的库放在名为“test”的子文件夹中

这似乎在我的代码编译时起作用,我可以制作我的模块。但是,当我尝试运行我的任何测试时,它找不到我试图包含的测试库。 Gradle 控制台中的错误实际上指向我没有显示任何错误的代码 fragment 。

此外,我确实正确设置了我的测试,因为我可以通过将所需的 jars 移动到 libs 文件夹并将我的依赖项更改为:

dependencies
{
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.android.support:support-v4:22.2.0'
}

但是如果 androidTestCompile 不工作,我真的看不出它有什么意义。如果不需要,我也宁愿不将这些 jar 文件包含在我的 apk 中。

如果有帮助,我正在使用 Android Studio 版本 1.2.2 和 Gradle 插件版本 1.2.3。

在此先感谢您的帮助。

最佳答案

请看下面的例子。

创建与src 文件夹平行的tests 文件夹。 将所有测试用例创建到该文件夹​​中。 如果你在另一个路径中创建文件夹,你需要为此调用。(添加到代码中。)

 dependencies {
    androidTestCompile files('libs/dexmaker-1.1.jar')
    androidTestCompile files('libs/org.mockito:mockito-core:3.9.5')
    androidTestompile files('espresso-1.0-SNAPSHOT-bundled.jar')
    }

defaultConfig {

    testApplicationId "xxx.xx.abc"
    testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"

}

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']

    }

    // Move the tests to tests/java, tests/res, etc...
    instrumentTest.setRoot('tests')

    instrumentTest {

        java.srcDirs = ['tests/src']

    }

    androidTest.setRoot('tests')
    androidTest.java.srcDirs = ['tests/src']

关于android - 如何在 Android Studio 中将我的 Android 测试库与我的应用程序库分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278813/

相关文章:

java - 如何回滚android sqlite数据库中已删除的行?

Android Gradle Dependency 与 Android 提供的内部版本冲突

android-studio - 如何更改 FlutterLogo 图像

gwt - vaadin小部件集编译期间发生错误

java - 创建新项目后出现Android Studio错误时刻

android - 手动充气 View 上的布局()

java - 如何找到观察 LiveData 的位置

java - EyeGesture和EyeGestureManager需要清晰

android - 无法在 Android Studio 中调试 onPostExecute

Android Studio 给出关于 JDK 位置的警告