使用Gradle jvm-test-suite,integrationTest suite无法访问kotlin内部Api

Rac*_*ace 5 gradle kotlin

我正在尝试使用 gradle JVM 测试套件插件来为我的 Kotlin 项目执行集成测试。一些类和 API 是internal可见的。

我按照示例代码创建了新的测试套件integrationTest

testing {
    suites { 
        val integrationTest by registering(JvmTestSuite::class) { 
            dependencies {
                implementation(project) 
            }
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是下面的源代码src/integrationTest/kotlin看不到internal项目main中的类。据我所知,测试套件integrationTest与项目 main 不在同一模块中。

我的问题是:

  1. test为什么这种行为与可以访问项目 main 中的内部类的默认测试套件不一致?
  2. 如果这是设计使然,我如何解决这个问题以使内部类对测试套件可见integrationTest

小智 -1

有同样的问题。在这里找到答案:Adding an extra test suite to Gradle似乎你需要添加

compileClasspath += sourceSets["main"].runtimeClasspath