Ich versuche, einen grundlegenden Test auszuführen
https://github.com/cemerick/clojurescript.test
Ich habe ein einfaches Projekt erstellt, wie folgt:
(defproject sampleproj "0.1.0-SNAPSHOT"
:description "FIXME: Beschreibung schreiben"
: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"]}}
)
Beide Ordner src-js und test-js existieren, da ich alle meine Clojurescript-Dateien dort platzieren möchte.
In meinem test-js/sampleproj Ordner habe ich den Beispielltest aus der Dokumentation kopiert:
(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)))))
Wenn ich jetzt versuche, die Tests auszuführen
-> % lein cljsbuild test
ClojureScript wird kompiliert.
ClojureScript-Test wird ausgeführt: unit-tests
ReferenceError: Variable cemerick nicht gefunden
phantomjs://webpage.evaluate():2
phantomjs://webpage.evaluate():5
phantomjs://webpage.evaluate():5
ReferenceError: Variable cemerick nicht gefunden
phantomjs://webpage.evaluate():2
phantomjs://webpage.evaluate():5
phantomjs://webpage.evaluate():5
Subprozess fehlgeschlagen
Ich bin ziemlich neu in Clojurescript, also fehlt mir wahrscheinlich etwas.
Update:
Meine Umgebung
-> % lein -v
Leiningen 2.3.4 auf 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)