Gradle compileTestJava步骤是如何工作的?

Gradle compileTestJava步骤是如何工作的?,java,gradle,junit,Java,Gradle,Junit,我有一个复杂的构建,Java源文件在编译之前必须进行预处理。这一切都有点混乱,但一切正常。接下来,我想让junit测试正常工作。我在src/test/java中添加了它们,但它们不编译。compileTestJava任务报告了数百个属于项目一部分的类的包/类未找到错误 我的第一个想法是编译后的类不在类路径中,因为输出目录是奇数的(请参阅前面关于预处理的说明),所以我明确地添加了它们: testImplementation ( 'junit:junit:4.12', 'org.

我有一个复杂的构建,Java源文件在编译之前必须进行预处理。这一切都有点混乱,但一切正常。接下来,我想让junit测试正常工作。我在
src/test/java
中添加了它们,但它们不编译。
compileTestJava
任务报告了数百个属于项目一部分的类的包/类未找到错误

我的第一个想法是编译后的类不在类路径中,因为输出目录是奇数的(请参阅前面关于预处理的说明),所以我明确地添加了它们:

  testImplementation (
    'junit:junit:4.12',
    'org.junit.jupiter:junit-jupiter-api:5.4.2',
    fileTree(dir: "${buildDir}/classes/hej")
  )
如果我自己配置扩展
testCompileClasspath

configurations {
  normtest.extendsFrom(testCompileClasspath)
}
并打印出类路径:

task helloWorld() {
  doLast {
    configurations.normtest.each {
      println it
    }
  }
}
类路径显然包括
compileTestJava
报告为缺失的类


我忽略了什么?

我相信我的错误是
testImplemetation中的
fileTree(dir:…)
,我想要的是
文件(…)