求助:Dokka未生成测试包文档(Gradle Kotlin DSL环境)
解决Dokka生成测试代码文档提示“Nothing to document”的问题
Dokka默认仅扫描main源码集,要生成测试包的HTML文档,需要手动配置任务包含测试源码集,以下是两种可行方案:
方案1:扩展现有dokkaHtml任务,同时生成主源码和测试源码文档
在build.gradle.kts中添加如下配置:
plugins { kotlin("jvm") version "1.9.20" // 替换为你的Kotlin版本 id("org.jetbrains.dokka") version "1.9.20" // 保持与Kotlin版本兼容 } tasks.dokkaHtml { dokkaSourceSets { // 保留主源码集配置(若无需可省略) named("main") { displayName.set("Main") } // 添加测试源码集 create("test") { // 指定测试代码的源目录 sourceRoots.from(project.sourceSets.test.get().kotlin.sourceDirectories) // 设置测试文档在输出中的显示名称 displayName.set("Test") // 可选:配置源码链接(若需关联远程仓库代码) // sourceLink { // localDirectory.set(project.file("src/test/kotlin")) // remoteUrl.set(URI.create("https://github.com/your-username/your-repo/blob/main/src/test/kotlin/")) // remoteLineSuffix.set("#L") // } } } }
运行./gradlew dokkaHtml后,输出的HTML文档会包含主源码和测试源码的内容,可在build/reports/dokka/html/index.html中查看。
方案2:创建独立任务专门生成测试代码文档
如果只想单独生成测试代码的文档,可注册一个独立的dokkaHtmlTest任务:
tasks.register<org.jetbrains.dokka.gradle.DokkaHtmlTask>("dokkaHtmlTest") { description = "生成测试源码的HTML文档" group = "Documentation" dokkaSourceSets { create("test") { sourceRoots.from(project.sourceSets.test.get().kotlin.sourceDirectories) displayName.set("Test") } } }
运行./gradlew dokkaHtmlTest即可,输出路径为build/reports/dokka/htmlTest/index.html。
额外注意事项
- 确保测试代码中的注释是标准KDoc格式:使用
/** ... */包裹,单行或多行均可,//或普通/* ... */注释不会被Dokka识别。 - 检查测试源码集路径是否正确:默认路径为
src/test/kotlin,若你的测试代码在自定义路径,需调整sourceSets.test.get().kotlin.sourceDirectories指向对应目录。 - 保持Dokka与Kotlin版本兼容:建议使用与当前Kotlin版本匹配的Dokka版本,避免出现兼容性问题。
内容的提问来源于stack exchange,提问作者miluni
相关产品推荐
相关产品推荐

