Kotlin项目:如何在Dokka HTML输出中展示测试代码?
解决Dokka无法生成测试代码HTML文档的问题
你之前的配置无效,核心原因是默认情况下Dokka不会自动创建test源码集,直接调用named("test")只会尝试修改已存在的源码集,自然不会生效。以下是可生效的配置方案:
1. 确保Dokka插件正确应用
先确认build.gradle.kts中已引入匹配版本的Dokka插件(版本需与Kotlin版本兼容):
plugins { kotlin("jvm") version "1.9.0" // 替换为你的项目Kotlin版本 id("org.jetbrains.dokka") version "1.9.10" // 保持与Kotlin版本同大版本 }
2. 正确配置Test源码集
使用create("test")显式创建测试源码集,而非直接修改不存在的集:
tasks.dokkaHtml.configure { dokkaSourceSets { // 保留主源码集配置(可选,若不需要可删除) named("main") { displayName.set("Main") } // 创建并配置Test源码集 create("test") { // 指定测试代码根目录 sourceRoots.from(file("src/test/kotlin")) // 允许收录非公开元素(测试代码常包含internal/private方法) includeNonPublic.set(true) // 明确指定要收录的可见性范围 documentedVisibilities.set( setOf( org.jetbrains.dokka.DokkaConfiguration.Visibility.PUBLIC, org.jetbrains.dokka.DokkaConfiguration.Visibility.PROTECTED, org.jetbrains.dokka.DokkaConfiguration.Visibility.INTERNAL, org.jetbrains.dokka.DokkaConfiguration.Visibility.PRIVATE ) ) // 在文档侧边栏显示的名称 displayName.set("Tests") // 可选:让Test文档依赖Main文档,确保跨集引用能正常解析 dependsOn(named("main")) } } }
3. 关键验证步骤
- 检查路径有效性:确认
src/test/kotlin是项目中测试代码的实际根目录,多模块项目需调整为project(":你的模块名").file("src/test/kotlin") - 同步Gradle配置:在IntelliJ中点击右上角的「Sync Project with Gradle Files」按钮,确保配置被IDE加载
- 执行正确任务:运行命令
./gradlew dokkaHtml(Windows用gradlew.bat dokkaHtml),生成的文档会在build/dokka/html目录下 - 版本兼容性:避免Kotlin与Dokka版本跨大版本(比如Kotlin 1.8搭配Dokka 1.9),版本不匹配可能导致配置失效
内容的提问来源于stack exchange,提问作者33NZ
相关产品推荐
相关产品推荐

