繁体   English   中英

在单元测试中通过Gradle排除罐子

[英]Excluding jars via Gradle in unit tests

我使用fileTree()包含了另一个项目中的一些本地构建的库:

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

对于单元测试,我想使用自己的模拟类而不是这些jar。 如何让testImplementation配置为使用这些jar文件,而是使用源层次结构之外的类似名称的类?

默认情况下testImplementation配置从implementation 1扩展,因此添加到implementation每个依赖项都将出现在testImplementation

因此,最好的选择是将这些特定的依赖项声明为不同的配置,我们称其为extraDeps ,然后将其添加到compileClasspath配置中:

configurations {
    extraDeps
    compileClasspath.extendsFrom(extraDeps)
}

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

这给您带来以下优点:

  • 编译和测试之间的共享依赖关系仍然可以在implementation
  • 特殊依赖项在它们自己的配置中被清楚地标识
  • 编译classpath即可查看所需的一切
  • 测试classpath没有看到特殊的罐子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM