如何在Leiningen项目中添加单元测试?

11

我注意到 Leiningen 有一个很好的单元测试插件 - 只需输入 "lein test" :)。然而,它并不清楚如何“找到”测试文件。我需要放置特定的文件夹吗?或者,如果它只是扫描名称空间(这是 lein 文档中所说的),我怎么知道我需要使用哪个名称空间让 Leiningen 看到我的测试?

我考虑简单制作一个名为 tests.clj 的测试文件。样本模板确实会很不错。

2个回答

11

在顶层创建一个 test/ 目录,然后创建一些文件,比如说 mytests.clj。下面是一个示例(注意:我没有实际编译过这个代码,但简化了一个现有的测试):

(ns mytests
    (:use clojure.test))

(defn myfixture [block] 
    (do 
        (println "before test")
        (block)
        (println "after test")))

(use-fixtures :each myfixture)

(deftest mytest
    (is (= 2 (+ 1 1))))

5
当Leiningen创建一个项目时,它会创建一个名为“test”的目录,并在其中添加一个单一的失败测试用例。 - Hamza Yerlikaya
7
这段代码出错了:“Caused by: java.io.FileNotFoundException: Could not locate mytests__init.class or mytests.clj on classpath: ”… 这和命名空间有关吗? - jayunit100

-3

对于lein版本2.7.1:{这是来自Linux Mint的Leiningen 2.7.1,使用Java 1.8.0_121 Java HotSpot(TM) 64-Bit Server VM} 我想要更多地了解测试,并且现在有了这个新知识...

lein new <projname>
cd <projname>
tree -d
cat test/<projname>/core_test.clj 
lein test
 -> observe failing test template even on blank new project

然后你可以添加: (print "开始添加测试"),并查看你的努力...


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