如何让Gradle执行已编写的ArchUnit测试?
让Gradle自动执行ArchUnit JUnit5测试的方法
不需要额外引入ArchUnit Gradle插件,只要把Gradle的测试任务配置为支持JUnit5,就能自动识别并执行test/java目录下带@ArchTest注解的测试类,具体步骤如下:
1. 确认依赖配置无误
你的构建脚本里已经添加了archunit-junit5依赖,保险起见可以同时显式引入JUnit Jupiter引擎(多数情况下archunit-junit5会间接依赖它,但显式声明能避免版本冲突):
Groovy DSL(build.gradle)示例:
dependencies { testImplementation 'com.tngtech.archunit:archunit-junit5:1.2.1' // 替换成你使用的版本 testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' }
Kotlin DSL(build.gradle.kts)示例:
dependencies { testImplementation("com.tngtech.archunit:archunit-junit5:1.2.1") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.0") }
2. 配置Test任务启用JUnit5支持
让Gradle的test任务使用JUnit Platform,这样它会自动扫描所有JUnit5规范的测试(包括ArchTest):
Groovy DSL示例:
test { useJUnitPlatform() // 可选:添加这行能看到更详细的测试执行日志 testLogging { events 'PASSED', 'FAILED', 'SKIPPED' } }
Kotlin DSL示例:
tasks.test { useJUnitPlatform() testLogging { events("PASSED", "FAILED", "SKIPPED") } }
3. 执行测试
配置完成后,直接运行Gradle的test任务即可:
- 命令行执行:
./gradlew test(Linux/Mac)或者gradlew.bat test(Windows) - 在IntelliJ里,也可以直接点击Gradle面板中
Tasks -> verification -> test选项运行
这样Gradle就会自动扫描test/java下所有带@ArchTest的测试类并执行,完全不需要额外插件配置。
内容的提问来源于stack exchange,提问作者Martin Schröder
相关产品推荐
相关产品推荐

