Domanda

Sto scrivendo un piccolo progetto Clojure utilizzando Leiningen con la seguente struttura di directory:

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

Quando eseguo lein test, si segnala che correva 0 test con 0 errori, ma ho volutamente messo un test inteso a fallire nel file di test /.../ core.clj.

ho aggiunto il :test-path test riga al mio file project.clj e quando ho ri-ran, ha ottenuto l'errore:

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

Sono in esecuzione Clojure 1.2 e la più recente Lein (1.3.1).

si presenta come un problema sia con clojure.core o il codice Lein.

È stato utile?

Soluzione

Per quanto riguarda il layout di origine. Penso che fondamentalmente ombra il test con il file core.clj reale. Questo è probabilmente il motivo per cui clojure.test non trova alcun test. Hai provato uno spazio dei nomi e il nome file di diverso? per esempio. test/example/project/test_core.clj.

Altri suggerimenti

Ha avuto lo stesso problema. Dopo un po 'ho notato che Leins percorso predefinito per i test sono:

Test / {nome-progetto} / test / {file sottoposto a test} .clj

(notare la directory test "extra")

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top