使用Micronaut与Kotlin的Gradle项目如何分离单元和集成测试
问题原因
自定义的intTest集成测试源集未配置Micronaut注解处理器支持,kapt没有对集成测试代码中的@MicronautTest注解进行处理,无法生成对应的Bean定义,导致运行报错。
具体修改步骤
你需要对build.gradle.kts做三处修改:
- 给集成测试源集配置kapt注解处理器继承关系,在你现有
configurations配置块后新增以下配置:
val kaptIntTest: Configuration by configurations.getting { extendsFrom(configurations.kaptTest.get()) }
- 告知Micronaut插件需要处理
intTest源集的注解,修改micronaut配置块,新增additionalSourceSets配置:
micronaut { runtime("netty") testRuntime("junit5") processing { incremental(true) annotations("com.example.*") // 新增这行,指定Micronaut处理集成测试源集的注解 additionalSourceSets.add(sourceSets.getByName("intTest")) } }
- 给集成测试的Kotlin编译任务指定JVM版本,和主代码、单元测试保持一致,修改tasks块中的编译配置:
tasks { compileKotlin { kotlinOptions { jvmTarget = "11" } } compileTestKotlin { kotlinOptions { jvmTarget = "11" } } // 新增集成测试的Kotlin编译配置 compileIntTestKotlin { kotlinOptions { jvmTarget = "11" } } }
修改完成后重新执行构建任务,集成测试即可正常运行。
内容的提问来源于stack exchange,提问作者Krešimir Nesek
相关产品推荐
相关产品推荐

