使用gradle构建系统创建测试Android apk
我正在将我的android项目迁移到gradle build system,无法从集成测试android项目导入我的android项目 我使用多项目配置和几个android库,它工作得很好,但是我在设置多项目设置的测试项目时遇到了问题。出于外部原因,我需要继续使用此结构使用gradle构建系统创建测试Android apk,android,gradle,android-studio,robotium,build.gradle,Android,Gradle,Android Studio,Robotium,Build.gradle,我正在将我的android项目迁移到gradle build system,无法从集成测试android项目导入我的android项目 我使用多项目配置和几个android库,它工作得很好,但是我在设置多项目设置的测试项目时遇到了问题。出于外部原因,我需要继续使用此结构 MyProject/ | settings.gradle + MyApp/ | build.gradle | src | res | libs + Instrumentation-Tests
MyProject/
| settings.gradle
+ MyApp/
| build.gradle
| src
| res
| libs
+ Instrumentation-Tests/
| build.gradle
| src
| res
| libs
我当前的配置文件如下所示:
settings.gradle:
include ':MyApp', 'Instrumentation-Tests'
MyAppp/build.gradle:
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('.....jar')
compile project('....')
compile 'com.android.support:support-v4:13.0.+'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
最后是我的仪器测试/build.gradle
:
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile project(':MyApp')
compile files('.....jar')
compile 'com.android.support:support-v4:13.0.+'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
}
当我运行gradlecompiledebug
时,项目MyApp
被正确编译(及其所有模块),但是指令插入测试
编译失败,因为它找不到MyApp
中定义的android类
我已经阅读了文档和许多帖子,但我无法让它工作,我也尝试使用:
compile(project(':MyApp')) { transitive = true }
当声明依赖项时
有人有过同样的问题吗?
我想将MyApp
项目依赖项的输出包含到插装测试编译的类路径中,但我不知道使用androidgradle
插件是否可行。这将不起作用(到目前为止),因为您只能将库项目指定为依赖项
因此,对于compileproject(“:MyApp”)
MyApp应该是一个Android库项目,其build.gradle中有apply插件:“Android库”
。这当然没有道理
要有一个单独的测试项目,您需要其他的东西(我自己正在研究)
编辑:放弃使用Gradle进行测试,使用Ant进行测试。你读过这样的东西吗:还有这个:?我想知道您是否遵循了这些说明,但更改了源集的位置,以确定它是否适用于您当前的设置。您可能需要指定相对于项目根目录的测试源目录。我最终将所有测试都移动到gradle结构中,我也将所有检测测试(单元测试和功能测试)移动到instrumentationTest文件夹中,并且一切正常!最后我把所有的测试都移到了gradle结构中,我也把所有的仪器测试(单元测试和功能测试)移到了instrumentationTest文件夹中,一切都正常!