2017-03-30 4 views
1

Ich habe eine Leiningen-Plugin von der folgenden Funktion aus:Warum findet clojure.test/run-all-tests keine Tests, wenn sie von einem Leiningen-Plugin ausgeführt werden?

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

Als ich diese laufe mit lein vscode-test in einem Clojure-Projekt mit einer project.clj Datei clojure.test/run-all-tests läuft, aber es irgendwelche Tests im Projekt nicht finden . Beachten Sie, dass lein test alle Tests ausführt.

Mein project.clj ist

(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"]]) 

Warum nicht das Plugin die Tests sehen?

+0

Ich denke, es würde helfen, wenn Sie Ihren 'project.clj' Inhalt in der Frage einschließen würden. –

+0

Hinzugefügt project.clj – James

Antwort

1

clojure.test/run-all-tests führt alle derzeit definierten Tests aus. lein test lädt zunächst die Testspezifikationen in das Verzeichnis test und ruft dann den Code clojure.test auf.

Mit anderen Worten; Sie führen keine Tests durch, da der von Ihnen bereitgestellte Code die Namespaces, die Ihre Tests enthalten, nicht lädt/benötigt.

+0

Das macht Sinn. Ich nahm an, 'run-all-tests' würden sie laden, aber es macht Sinn, dass sie nur ausgeführt werden, wenn sie bereits geladen sind. – James

Verwandte Themen