为什么没有clojure.test / run-all-tests在从leiningen插件运行时找到测试?

时间:2017-03-30 00:32:15

标签: unit-testing plugins clojure leiningen

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

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

当我使用lein vscode-testproject.clj文件clojure.test/run-all-tests运行的Clojure项目中运行时,但它没有在项目中找到任何测试。请注意,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"]])

为什么插件没有看到测试?

1 个答案:

答案 0 :(得分:1)

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

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