【问题标题】:How to add test folders to an older Android Studio Project如何将测试文件夹添加到旧的 Android Studio 项目
【发布时间】:2015-10-08 10:08:53
【问题描述】:

我在将项目结构添加到 Android Studio 中的旧 Android 项目时遇到了一些问题。

当您在 Android Studio 中创建一个新项目时,您会获得从一开始就创建的测试目录。

src/test/java - for unit testing 
src/androidTest/java - for Android/UI testing. 

但我们的项目没有这些,因为它是我们从 Eclipse 迁移的旧项目。

我已经成功的将用于单元测试的目录(test)和java文件夹(test/java)添加到我们的项目中,其中java目录被识别为java目录,所以我可以添加新的包和java文件。

当我在 Android 项目视图中查看包时,它们被列为:

com.ourcompany.ourapp
com.ourcompany.ourapp (test) - And here I can see my testclasses. 

到目前为止一切顺利。

但我似乎无法为 androidTest 添加结构。

如果我在目录下添加androidTest和一个名为java的java文件夹,java文件夹标记为绿色,我可以添加类和包。但是 testpackage 没有标记为测试。

我在 android 项目视图中得到了这个结果。

com.ourcompany.ourapp
com.ourcompany.ourapp - And here is the testclass, MainActivityTest.java
com.ourcompany.ourapp (test)

当我添加androidTest/java文件夹时,build.gradle文件中出现了这一行:

android { sourceSets { main { java.srcDirs = ['src/main/java', 'src/androidTest/java/'] } } }

如果我删除该行,那么 androidTest/java 文件夹将不再被识别为 java 文件夹,并且我不能再在那里添加类/包。而且在 Android 项目视图中,MainActivityTest 类根本不再可见。

在添加 androidTest 文件夹时,我缺少什么,以便将其识别为测试文件夹结构?

有什么我需要添加到 gradles 文件中的吗?

android {
    compileSdkVersion 21
    buildToolsVersion '22.0.1'

    defaultConfig {
        applicationId "com.ourcompany.ourapp"
        minSdkVersion 15
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }

    lintOptions {
        checkReleaseBuilds true
        abortOnError false
    }

    configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:22.2.1'
    }

}

dependencies {
    compile 'com.android.support:support-v4:22.1.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.android.support:appcompat-v7:22.1.1'
    testCompile 'junit:junit:4.12'
    testCompile "org.mockito:mockito-core:1.+"
}

android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
}

【问题讨论】:

    标签: android unit-testing testing android-studio


    【解决方案1】:

    首先,在src文件夹下创建两个目录。

    名字是;

    1) 安卓测试

    2) 测试

    然后在这些目录下添加java文件夹。

    应该是这样的“androidTest > java”和“test > java”。

    之后,打开当前项目中的任意源文件。按 Alt + Enter 然后单击“创建测试”部分。选择您想要的测试目录并编写测试。

    【讨论】:

      【解决方案2】:

      对于单元测试

      sourceSets {
          test.root 'test'
          test.java.srcDirs 'test/java'
      }
      

      用于 Android Instrumentation 测试

      sourceSets {`enter code here`
          androidTest.root 'src/tests/androidTest'
          androidTest.java.srcDirs 'src/tests/androidTest/java'
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-03
        • 1970-01-01
        • 2019-04-05
        • 1970-01-01
        • 2015-08-12
        • 2011-03-04
        • 2012-04-16
        • 1970-01-01
        相关资源
        最近更新 更多