如何在Clojure中运行测试文件

Fae*_*ery 3 testing jedit clojure

我正在使用jEdit,我想要做的是写一个文件并运行测试.我对运行测试的过程感兴趣,而不是文件本身.

所以我写了这个简单的函数 File.clj

(defn abs [n]
  (if (neg? n) (- n) n))
Run Code Online (Sandbox Code Playgroud)

而这个测试在 TheTest.clj

(use 'clojure.test)

(load-file "File.clj")

(deftest sample-test
  (testing "abs"
    (is (= 5 (abs (5))))))

(run-tests)
Run Code Online (Sandbox Code Playgroud)

然后我运行该文件,TheTest.clj但它说:

java.io.FileNotFoundException: File.clj (The system cannot find the file specified) (TheTest.clj:49)

有人可以告诉我这是做事情的方法,如果不是如何运行测试:(没有必要在jEdit,它可能在命令提示符,如果它应该.也有我leiningen安装和File.cljTheTest.clj我也尝试在加载文件函数中提供文件的完整路径,但没有成功.

非常感谢,好人!:)

And*_*rew 6

如果没有Leingingen,你的榜样肯定是可行的.它可以在我的计算机上进行一个小的改动:删除括号5,所以测试线读取

(is (= 5 (abs 5)))
Run Code Online (Sandbox Code Playgroud)

要成功运行脚本,请找到Clojure JAR的位置,打开终端并切换到源文件所在的目录,然后执行以下命令:

java -cp /path/to/clojure/clojure-1.4.0.jar clojure.main TheTest.clj
Run Code Online (Sandbox Code Playgroud)

显然用/path/to/clojure/clojure-1.4.0.jar您系统上Clojure的实际路径替换.如果您已经使用了Leiningen,那么Maven存储库中就会有一个副本(我已经知道了~/.m2/repository/org/clojure/clojure/1.4.0/clojure-1.4.0.jar)

我跑TheTest.clj了,输出是:

Testing user

Ran 1 tests containing 1 assertions.
0 failures, 0 errors.
Run Code Online (Sandbox Code Playgroud)