3

ここでばかげた初心者の質問。新しい lein プロジェクトを作成し、「core_test.clj」ファイルでサンプル テストを実行しようとしています。私はemacsと「nrepl-jack-in」を使用しています。しかし、repl から "(run-all-tests)" を実行すると、次のようになります。

シンボルを解決できません: このコンテキストでは deftest、コンパイル中:(NO_SOURCE_PATH:1:1)

興味深いことに、テストは次の 2 つのシナリオから機能し
ます 。

(ns my-prog.core-test (:require [clojure.test :refer :all] [my-prog.core :refer :all]))

興味深いことに、この行は「core_test.clj」ファイル自体にありますが、何らかの理由で評価されていないと思います。emacs で Ctrl-x Ctrl-e を使用してバッファを評価していますが、名前空間の仕様を読み取っていないようです。

4

2 に答える 2

1

これを解決したかどうかはわかりませんが、最近、依存関係として Clojure 1.2 を持つ古いライブラリをアップグレードするときに、この問題に遭遇しました。しばらくして、Clojure 1.4 で:refer :all構文が追加されたことに気付きました。この問題には 2 つの解決策があります。

  • Clojure 1.4+ にアップグレードします。

    Clojure 1.4 に切り替えるなど、依存関係をproject.clj更新します。[org.clojure/clojure "1.4.0"]

  • use代わりに使用してください。この場合、名前空間宣言は次のようになります。

    (ns my-prog.core-test 
      (:use [[clojure.test] 
             [my-prog.core]))
    

それが役立つことを願っています!

于 2013-11-20T20:41:57.753 に答える