为什么 clojure.test/run-all-tests 在 运行 来自 leiningen 插件时找不到测试?

Why doesn't clojure.test/run-all-tests find tests when run from a leiningen plugin?

我有一个包含以下功能的 leiningen 插件:

(defn vscode-test
  "Simple test run"
  [project & args]
  (leiningen.core.eval/eval-in-project project `(clojure.test/run-all-tests)))

当我在 Clojure 项目中 运行 lein vscode-test 使用 project.clj 文件 clojure.test/run-all-tests 运行s 时,它没有找到任何文件项目中的测试。请注意 lein test 执行 运行 所有测试。

我的project.clj

(defproject repl_test "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :source-paths ["src" "test" "dev"]
  :plugins [[vscode-test "0.1.0-SNAPSHOT"]]
  :dependencies [[org.clojure/clojure "1.8.0"]
                 [org.clojure/core.async "0.3.442"]
                 [org.clojure/tools.namespace "0.2.11"]])

为什么插件看不到测试?

clojure.test/run-all-tests 运行所有当前定义的测试。 lein test 首先加载 test 目录中的测试定义,然后调用 clojure.test 代码。

换句话说;您没有 运行 任何测试,因为您提供的代码不会加载/需要包含您的测试的命名空间。