AndroidStudio上没有显示AndroidTest文件夹

Rec*_*nes 16 android android-testing android-studio android-espresso

我正在为一个项目设置Gradle和Android Studio以及Espresso UI测试的Android应用程序结构.

无论我尝试什么,androidTest文件夹都不会出现在AndroidStudio的项目结构中.

项目(root)build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.2'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}
Run Code Online (Sandbox Code Playgroud)

App build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.2'
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.0"

    defaultConfig {
        applicationId "es.unizar.vv.mobile.catmdedit.app"
        minSdkVersion 16
        targetSdkVersion 16
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'

            java {
                srcDir 'src/main/java'
            }
            resources {
                srcDir 'src/main/resources'
            }
            res.srcDirs = ['res']
        }

        test.setRoot("test")

        androidTest.setRoot("androidTest")
    }
}

dependencies {
    androidTestCompile 'com.android.support.test:runner:0.2'
    androidTestCompile 'com.android.support.test:rules:0.2'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'
}
Run Code Online (Sandbox Code Playgroud)

项目结构如何:

在此输入图像描述

项目结构实际如何:

在此输入图像描述

Mat*_*son 26

这发生在我身上,因为我将当前的变体设置为release. 将其更改回debug并执行 Gradle 同步会导致androidTest文件夹再次显示。

  • 对我来说,情况恰恰相反,它显示“发布”,但不显示“调试”。:-( (2认同)
  • @BartLouwers 只需更改您的“testBuildType”属性 (2认同)

Joe*_*oel 17

Build Variants中测试工件更改为Android Instrumentation测试.

Build Variants选项卡位于"收藏夹"上方Android Studio窗口的左下角.单击选项卡应打开包含模块的窗格,并为这些模块构建变体.模块上方是Test Artifact下拉列表,您应该将其更改为Android Instrumentation Tests.

  • 这在Android Studio的更高版本中已更改.接受的答案不再适用,窗格不再存在.6uitar6reat6od的答案确实有效. (8认同)
  • 哦,对不起,其实你是对的,我只需要将它添加到gradle:`androidTest.setRoot('src/androidTest')androidTest {java {srcDirs'src/androidTest/java'}}`然后进入构建变体> Android Instrumentation测试它出现了!谢谢! (4认同)

Shi*_*mar 13

您只需要在build.gradle文件中添加这些行

//经过大量的研发后,我找到了合适的解决方案.现在它正在运作..

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

}
Run Code Online (Sandbox Code Playgroud)

//添加上面的代码"androidTest"文件夹出现!!


Wha*_*rps 6

以防万一有人仍然被这个问题困扰,我建议你重新创建你自己的文件夹,这比我想象的要容易得多!在这里:按照照片中的步骤操作。在此处输入图片说明

不要忘记从android切换到项目,这样你将拥有如下图所示的相同目录树,并简单地创建文件夹和文件,之后你可以切换回android,它会给你相同的目录树在图像的右侧。

并且您的 ExampleInstrumentedTest 类可能如下所示:

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

}
Run Code Online (Sandbox Code Playgroud)

ExampleUnitTest 类可以如下所示:

public class ExampleUnitTest {
    @Test
    int addition(){
        return 60;
    }
}
Run Code Online (Sandbox Code Playgroud)