【发布时间】:2015-10-08 10:08:53
【问题描述】:
我在将项目结构添加到 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 项目视图中查看包时,它们被列为:
com.ourcompany.ourapp
com.ourcompany.ourapp (test) - And here I can see my testclasses.
到目前为止一切顺利。
但我似乎无法为 androidTest 添加结构。
如果我在目录下添加androidTest和一个名为java的java文件夹,java文件夹标记为绿色,我可以添加类和包。但是 testpackage 没有标记为测试。
我在 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 文件夹时,我缺少什么,以便将其识别为测试文件夹结构?
有什么我需要添加到 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'
}
}
【问题讨论】:
标签: android unit-testing testing android-studio