如何在Clojure中运行测试文件

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 (系统找不到指定的文件) (TheTest.clj:49)

请问有人能告诉我这是否是正确的操作方式?如果不是,如何运行测试 :( 不一定要在jEdit中,也可以在命令提示符中进行。我已经安装了leiningen,并且File.cljTheTest.clj位于同一目录下。我还尝试在load-file函数中提供整个文件路径,但没有成功。

非常感谢您,善良的人们! :)


这是一个Leiningen项目吗? - Abimaran Kugathasan
不,不是这样的。有没有一种方法可以在不创建项目的情况下运行测试? - Faery
Leiningen 可以处理项目内的文件。只需创建 Leiningen 项目,您就可以获得完整的工具包,而不仅仅是运行测试的可能性。如果您只想运行一些代码来测试您的想法或类似的东西,请运行普通函数。 - ffriend
您能展示一下您的命名空间是如何设置的吗? - user1922460
1个回答

6

没有使用Leiningen也可以让您的示例工作。只需要做一点小修改就可以在我的电脑上运行:删除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.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接