Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';t运行基本clojurescript.test样本_Clojure_Clojurescript_Cljsbuild - Fatal编程技术网

我能';t运行基本clojurescript.test样本

我能';t运行基本clojurescript.test样本,clojure,clojurescript,cljsbuild,Clojure,Clojurescript,Cljsbuild,我正试着做一个基本的测试 我创建了一个简单的项目,例如: (defproject sampleproj "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"}

我正试着做一个基本的测试

我创建了一个简单的项目,例如:

(defproject sampleproj "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"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                  [org.clojure/clojurescript "0.0-2014"]
                  ]
  :plugins [[lein-cljsbuild "1.0.0"]
          [com.cemerick/clojurescript.test "0.2.2"]]
  :cljsbuild {:builds [{:source-paths ["src-js" "test-js"]
                      :compiler {:output-to "target/cljs/testable.js"
                                 :optimizations :whitespace
                                 :pretty-print true}}]
            :test-commands {"unit-tests" ["phantomjs" :runner
                                          "this.literal_js_was_evaluated=true"
                                          "target/cljs/testable.js"]}}
  )
src js和test js这两个文件夹都存在,因为我打算把我所有的clojurescript文件都放在那里

在我的test js/sampleproj文件夹中,我复制了文档中的示例测试:

(ns sampleproj.sampletest
  (:require-macros [cemerick.cljs.test
                    :refer (is deftest with-test run-tests testing test-var)])
  (:require [cemerick.cljs.test :as t]))

(deftest somewhat-less-wat
  (is (= "{}[]" (+ {} []))))

(deftest javascript-allows-div0
  (is (= js/Infinity (/ 1 0) (/ (int 1) (int 0)))))

(with-test
  (defn pennies->dollar-string
    [pennies]
    {:pre [(integer? pennies)]}
    (str "$" (int (/ pennies 100)) "." (mod pennies 100)))
  (testing "assertions are nice"
    (is (thrown-with-msg? js/Error #"integer?" (pennies->dollar-string 564.2)))))
现在如果我试着运行测试

-> % lein cljsbuild test
Compiling ClojureScript.
Running ClojureScript test: unit-tests
ReferenceError: Can't find variable: cemerick

  phantomjs://webpage.evaluate():2
  phantomjs://webpage.evaluate():5
  phantomjs://webpage.evaluate():5
ReferenceError: Can't find variable: cemerick

  phantomjs://webpage.evaluate():2
  phantomjs://webpage.evaluate():5
  phantomjs://webpage.evaluate():5
Subprocess failed
我对clojurescript还不太熟悉,所以我可能遗漏了什么

更新

我的环境

-> % lein -v
Leiningen 2.3.4 on Java 1.7.0_06 Java HotSpot(TM) 64-Bit Server VM

-> % phantomjs -v
1.9.2

-> % java -version
java version "1.7.0_06"
Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

宏是否位于clj源中? 之后,编译器应该将宏编译成javascript


您可能在project中有依赖项。clj

这还没有回答,所以我会回答。您需要为clojurescript.test指定依赖项:[com.cemerick/clojurescript.test“0.3.1”]

我试图复制,但所有测试用例都成功运行,没有任何错误。Lein版本2.3.4、phantomjs版本1.9.2和java版本1.7.0。幻影在路径中?看起来我的环境和你的完全一样。我更新了问题。这很奇怪。我只是想插嘴说我也有同样的问题。版本信息:$lein-v Leiningen 2.3.4在Java 1.6.027OpenJDK 64位服务器VM$phantomjs-v 1.9.7和我一样Leiningen 2.3.4 phantomjs 1.9.1 Java 1.8.0-B132在变量
cemerick
被定义之前,可能是解析或执行
testtable.js
的错误,它从来没有被定义为错误的影响。Test runner或PhantomJS可能会删除错误或完全隐藏错误,我们没有找到与cemerick无关的真正原因。因为他在
:plugins
中包含了
clojurescript.Test
,他不需要在
:dependencies
中提及它