You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Leiningen执行lein test不运行Java JUnit测试用例如何解决?

Leiningen混合项目同时执行Clojure测试与Java JUnit测试方案

配置修改步骤

  • 第一步:在project.clj中添加测试profile配置,引入lein-junit插件与JUnit依赖,指定Java测试目录
  • 第二步:配置prep-tasks绑定执行逻辑,实现lein test自动串行执行Java编译、JUnit测试、Clojure测试

完整配置示例

(defproject example-service "1.0.0"
  :source-paths ["src/clj"]
  :java-source-paths ["src/java"]
  :test-paths ["test/clj"]
  :dependencies [;; 你的生产依赖,如org.clojure/clojure等
                ]
  :profiles {:test {;; 引入lein-junit插件处理JUnit测试逻辑
                    :plugins [[lein-junit "1.1.9"]]
                    ;; 添加JUnit依赖
                    :dependencies [[junit/junit "4.13.2"]]
                    ;; 测试阶段追加Java测试目录为Java源码路径,用于编译
                    :java-source-paths ["test/java"]
                    ;; 指定JUnit测试用例所在路径
                    :junit-paths ["test/java"]
                    ;; 可选配置:JUnit执行参数,如输出详细日志、生成测试报告等
                    :junit-options ["--verbose"]}}
  ;; 配置lein test执行前的前置任务:先编译Java代码、运行JUnit测试
  :prep-tasks ["javac" "junit"])

命令使用说明

  • 执行lein test:自动按顺序执行Java代码编译、JUnit测试、Clojure测试,任意环节失败都会终止执行并返回错误信息
  • 执行lein junit:仅运行Java JUnit测试用例
  • 执行lein test :only your-clj-test-namespace:单独运行指定Clojure测试,不会触发JUnit执行

注意事项

  • 若使用JUnit 5,只需调整对应JUnit依赖版本,lein-junit 1.1.8及以上版本已原生支持JUnit 5
  • 所有测试相关配置放在:test profile下,不会影响生产包的构建逻辑,避免测试代码被打入生产Jar包

内容的提问来源于stack exchange,提问作者Primordinal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:57:04