AndroidTest folder doesn't show on AndroidStud

2019-02-16 10:48发布

问题:

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:

How project structure actually is:

回答1:

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.



回答2:

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!!



回答3:

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.



回答4:

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:



回答5:

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.

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


回答6:

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

androidTest.setRoot('src/androidTest')

androidTest  { 
    java { 
        srcDirs 'src/androidTest/java' 
    } 
}