3

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

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

(defn abs [n]
  (if (neg? n) (- n) n))

而这个测试在TheTest.clj

(use 'clojure.test)

(load-file "File.clj")

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

(run-tests)

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

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

有人可以告诉这是做这些事情的方法吗,如果不是如何运行测试:(没有必要在jEdit中,如果应该的话,它可能在命令提示符中。另外我已经安装了leiningenFile.clj并且TheTest.clj在同一目录中。我也尝试在加载文件函数中提供文件的完整路径,但没有成功。

非常感谢你们,好人!:)

4

1 回答 1

6

在没有 Leingingen 的情况下,当然可以让您的示例正常工作。它可以在我的电脑上运行,只需稍作改动:删除 周围的括号5,因此测试行显示为

(is (= 5 (abs 5)))

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

java -cp /path/to/clojure/clojure-1.4.0.jar clojure.main TheTest.clj

显然替换/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.
于 2013-03-12T17:47:06.293 回答