gpt4 book ai didi

android - 如何在Android库项目中按测试类型分隔源文件?

转载 作者:行者123 更新时间:2023-12-03 05:07:58 27 4
gpt4 key购买 nike

我遵循gradle docs在Java项目中按测试类型分隔源文件,并且我想在Android库项目中做同样的事情。默认情况下,Android插件com.android.library支持两种类型的测试目录testandroidTest。如何添加要在integTest之后运行的test

sourceSets {
integTest {
java.srcDir file('src/integTest/java')
resources.srcDir file('src/integTest/resources')
}
}

当我尝试将上面的 sourceSet添加到 build.gradle时,出现错误

ERROR: The SourceSet 'integTest' is not recognized by the Android Gradle Plugin. Perhaps you misspelled something?



由于Android Gradle插件不支持Java插件等自定义 sourceSets,是否有其他方法可以解决此问题?

最佳答案

错误的主要原因是在sourceSet内为integTest定义了android,只需将其移到外部即可解决此问题。参见下面的正确build.gradle

apply plugin: 'com.android.library'

android {
compileSdkVersion 28



defaultConfig {
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

}

sourceSets {
integTest {
java.srcDir file('src/integTest/java')
resources.srcDir file('src/integTest/resources')
}
}

configurations {
integTestCompile.extendsFrom testCompile
integTestRuntime.extendsFrom testRuntime
}

task integTest(type: Test) {
group = LifecycleBasePlugin.VERIFICATION_GROUP
description = 'Runs the integration tests.'
testClassesDirs = sourceSets.integTest.output.classesDirs
classpath = sourceSets.integTest.runtimeClasspath
}

check.dependsOn integTest

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
integTestImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

关于android - 如何在Android库项目中按测试类型分隔源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54412971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com