2017-03-30 1 views
1

J'ai un plugin Leiningen composé de la fonction suivante:Pourquoi clojure.test/run-all-tests ne trouve-t-il pas de tests lorsqu'il est exécuté à partir d'un plugin leiningen?

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

Quand je lance cela avec lein vscode-test l'intérieur d'un projet Clojure avec un fichier project.cljclojure.test/run-all-tests se exécute, mais il ne trouve pas l'un des tests dans le projet . Notez que lein test exécute tous les tests.

Mon project.clj est

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

Pourquoi ne pas le plug-in voir les tests?

+0

Je pense que cela serait utile si vous incluez votre contenu 'project.clj' dans la question. –

+0

Ajouté project.clj – James

Répondre

1

clojure.test/run-all-tests exécute tous les tests actuellement définis. lein test charge d'abord les définitions de test dans le répertoire test, puis appelle le code clojure.test.

En d'autres termes; vous n'exécutez aucun test car le code que vous avez fourni ne charge pas/ne nécessite pas les espaces de noms contenant vos tests.

+0

Cela a du sens. J'ai supposé que 'run-all-tests' les chargerait, mais il est logique qu'il ne les exécute que s'ils sont déjà chargés. – James