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

标签 android unit-testing testing android-studio

我在将用于测试的项目结构添加到 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 项目 View 中查看包时,它们被列为:

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

到目前为止一切都很好。

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

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

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

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 项目 View 中,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'
    }
}

最佳答案

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

名字是;

1) 安卓测试

2)测试

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

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

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

关于android - 如何将测试文件夹添加到较旧的 Android Studio 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33012717/

相关文章:

android - 实现滚动感知 FloatingActionButton 的推荐方法

android - 如何在Android studio中删除项目

node.js - 如何让 sinon mock 在不同的调用上返回不同的对象?

python - 我如何在我的 Django 应用程序中模拟一个到达外部服务的组件?

unit-testing - 关于单元测试的几个问题

android - ActionBarSherlock 以编程方式设置水平进度条最大值

android - 我们如何让用户在 Android 的 Canvas 上练习字母表?

unit-testing - 单元测试应该和不应该涵盖什么?

ios - KIF 测试用例在 UIView-KIFAdditions.m 类 iOS 崩溃

java - 如何在与 Spring Boot 的集成测试中 Autowiring 存储库?