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

时间:2019-01-29 02:21:08

标签: android gradle gradle-plugin source-sets android-sourcesets

在Java项目中,我遵循gradle docs将每种测试类型的源文件分开,所以我想在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时,出现错误

  

错误:Android无法识别SourceSet'integTest'   Gradle插件。也许您拼错了什么?

由于Android Gradle插件不像Java插件那样支持自定义sourceSets,还有其他方法可以解决此问题吗?

1 个答案:

答案 0 :(得分:0)

错误的主要原因是在onPageChanged(idx) { if (idx == 2) { //deriving ID+1 const newPages = this.state.pages.map(i => (parseInt(i)+1).toString()) this.setState({pages: newPages, key: ((this.state.key+1)%2) }) } else if (idx == 0) { //deriving ID-1 const newPages = this.state.pages.map(i => (parseInt(i)-1).toString()) this.setState({pages: newPages, key: ((this.state.key+1)%2) }) } } render() { return ( <Swiper index={1} key={this.state.key} style={styles.wrapper} loop={false} showsPagination={false} onIndexChanged={(index) => this.onPageChanged(index)}> {this.state.pages.map((item, idx) => this.renderItem(item, idx))} </Swiper> ); } 内为sourceSet定义了integTest,只需将其移到外部即可解决此问题。请参见下面的正确android

build.gradle