簡體   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