Gradle项目测试取决于另一个项目的测试

时间:2020-11-05 16:54:01

标签: gradle

这可能是某处的重复,但某些答案是针对旧Gradle的,不再可用。请让我知道这是否可行。我有一个名为NewProject的新项目。 NewProject取决于common项目,该项目位于另一个目录中。

- NewProject
  - \build.gradle
  - \settings.gradle
  - \src
    - \main\java
    - \test\java

 
- common
  - \build.gradle
  - \settings.gradle
  - \src
    - \main\java
    - \test\java

NewProject中,我的文件settings.gradle如下

rootProject.anme = 'NewProject'

include ':common'
project(':common').projectDir = file('../common')

我的文件build.gradle依赖项部分

中具有以下几行
dependencies {
   implementation project(':common')
   ...
   testImplementation project(':common')
   ...
}

我遇到的问题有两个:

  • 因为我不拥有通用的项目代码,所以不能通用地更改构建文件。
  • 我在NewProject中的测试找不到通用的测试类。例如BaseTest

我尝试了以下方法:

  • 使用testImplementation project(':common:test')无效,因为无法识别':common:test'

  • 使用testImplementation project(':common').sourceSets.output.classes,但是这种方法对于Gradle 5.0及更高版本无效。

请告知我是否还有其他方法!

1 个答案:

答案 0 :(得分:0)

需要什么?
:common的测试类和测试资源目录必须位于:newProject测试的类路径中

通过本地目录访问进行设置的一种方法-在:newProject build.gradle

testImplementation files('../common/build/classes/java/test')
testImplementation files('../common/build/resources/test')

注意:这不会向:common测试中过渡性地添加:newProject测试依赖项,您必须手动进行。