如何将测试文件夹添加到旧版的Android Studio项目

5

我在将测试项目结构添加到旧版Android项目中时遇到了一些问题,这个项目是在Android Studio中创建的。

在Android Studio中创建新项目时,您会从一开始就创建用于测试的目录。

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

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

我已经成功地将目录(测试)和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文件夹将被标记为绿色,我可以添加类和包。但是测试包未被标记为测试。

在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文件夹时,我错过了什么,才能被识别为测试文件夹结构?
我是否需要在gradle文件中添加一些内容?
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'
    }
}
2个回答

11

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

它们的名称是:

1) androidTest

2) test

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

应该像这样 "androidTest > java" 和 "test > java"。

之后,打开当前项目中的任何源文件。按下Alt + Enter,然后点击“Create Test”部分。选择你想要的测试目录并编写你的测试。


1

用于单元测试

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

用于 Android 仪器化测试

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接