Question

Je suis en train d'écrire un petit projet de Clojure utilisant Leiningen avec la structure de répertoire suivant:

project
+ src
  + org/example/project/core.clj
+ test
  + org/example/project/core.clj

Quand je lance lein test, il signale qu'il a couru 0 avec des tests 0 échecs, mais je mets volontairement un test conçu pour échouer dans le test /.../ fichier core.clj.

J'ajouté la ligne :test-path test à mon dossier project.clj et quand je re-ran, a l'erreur:

Exception in thread "main" java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.lang.Symbol (NO_SOURCE_FILE:0)
    at clojure.lang.Compiler.eval(Compiler.java:5440)
    at clojure.lang.Compiler.eval(Compiler.java:5391)
    at clojure.core$eval.invoke(core.clj:2382)
    at clojure.main$eval_opt.invoke(main.clj:235)
    at clojure.main$initialize.invoke(main.clj:254)
    at clojure.main$script_opt.invoke(main.clj:270)
    at clojure.main$main.doInvoke(main.clj:354)
    at clojure.lang.RestFn.invoke(RestFn.java:458)
    at clojure.lang.Var.invoke(Var.java:377)
    at clojure.lang.AFn.applyToHelper(AFn.java:174)
    at clojure.lang.Var.applyTo(Var.java:482)
    at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.lang.Symbol
    at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:471)
    at clojure.java.io$fn__7328$G__7323__7333.invoke(io.clj:34)
    at clojure.java.io$file.invoke(io.clj:401)
    at leiningen.util.ns$namespaces_in_dir.invoke(ns.clj:38)
    at leiningen.test$test.doInvoke(test.clj:45)
    at clojure.lang.RestFn.invoke(RestFn.java:411)
    at clojure.lang.Var.invoke(Var.java:365)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:482)
    at clojure.core$apply.invoke(core.clj:542)
    at leiningen.core$apply_task.invoke(core.clj:156)
    at leiningen.core$_main.doInvoke(core.clj:212)
    at clojure.lang.RestFn.applyTo(RestFn.java:138)
    at clojure.core$apply.invoke(core.clj:540)
    at leiningen.core$_main.invoke(core.clj:217)
    at user$eval167.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:5424)
    ... 11 more

Je suis en cours d'exécution Clojure 1.2 et la dernière lein (1.3.1).

On dirait un problème avec soit clojure.core ou le code lein.

Était-ce utile?

La solution

En ce qui concerne la mise en page source. Je pense que vous l'ombre au fond de votre test avec le fichier réel core.clj. C'est probablement pourquoi clojure.test ne trouve pas de tests. Avez-vous essayé un nom de fichier et espaces de noms différents? par exemple. test/example/project/test_core.clj.

Autres conseils

eu le même problème. Après un certain temps je remarquai que Leins chemin par défaut des tests sont:

test / {projet name} / test / {file sous test} .clj

(notez le répertoire test "extra")

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top