AndroidTest folder doesn't show on AndroidStud

2019-02-16 11:05发布

I'm setting up Android app structure with Gradle and Android Studio and Espresso UI testing for a project.

No matter what I try, the androidTest folder never appears in AndroidStudio's project structure.

Project (root) build.gradle:

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

allprojects {
    repositories {
        mavenCentral()
    }
}

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'
}

How project structure looks:

enter image description here

How project structure actually is:

enter image description here

6条回答
虎瘦雄心在
2楼-- · 2019-02-16 11:20

Just open the Gradle pane on the right side.

Under app > Tasks > build double click assembleAndroidTest and it'll generate test packages.

:app:packageDebugAndroidTest
:app:assembleDebugAndroidTest
:app:assembleAndroidTest

Here is it all:

查看更多
爷、活的狠高调
3楼-- · 2019-02-16 11:27

You just need to add these lines to your build.gradle file :

androidTest.setRoot('src/androidTest')

androidTest  { 
    java { 
        srcDirs 'src/androidTest/java' 
    } 
}
查看更多
在下西门庆
4楼-- · 2019-02-16 11:29

Change the Test Artifact within your Build Variants to Android Instrumentation Tests.

The Build Variants tab can be found in the bottom left side of the Android Studio window above Favorites. Clicking on the tab should open a pane with your modules and build variants for those modules. Above the modules is a Test Artifact dropdown which you should change to Android Instrumentation Tests.

查看更多
爷、活的狠高调
5楼-- · 2019-02-16 11:32
androidTest.setRoot("androidTest")

This path is relative to the build.gradle file. Just remove it and gradle will pick your src/androidTest folder automatically as your project follows the default file structure.

查看更多
做个烂人
6楼-- · 2019-02-16 11:45

Just in case somebody is still stuck with this issues, I will suggest you just recreate the folders your self which is extremely easy than I thought! here: follow the steps in the photo.enter image description here

don't forget to switch from android to project and like that you will have the same directory tree like in the picture below and simple create the folder and files, after which you can then switch back to android and it will give you the same directory tree as on the right side of the image.

and your ExampleInstrumentedTest class can look like this:

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

}

and the ExampleUnitTest class can look like this:

public class ExampleUnitTest {
    @Test
    int addition(){
        return 60;
    }
}
查看更多
地球回转人心会变
7楼-- · 2019-02-16 11:46

You just need ho add these line in build.gradle file

//After doing lots of R&D I found proper solution . Now it's working..

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

}

// After adding above code "androidTest" folder is appear!!

查看更多
登录 后发表回答