【问题标题】:How do I add unit tests to a Leiningen project?如何将单元测试添加到 Leiningen 项目?
【发布时间】:2011-12-07 23:31:15
【问题描述】:

我注意到 leiningen 有一个很棒的单元测试插件 - 你只需输入 "lein test" :) 。但是,尚不清楚它是如何“找到”测试文件的。我需要将它们放入特定的文件夹吗?或者,如果它只是扫描命名空间(这是 lein 文档中所说的),我怎么知道我需要使用什么命名空间让 leiningen 看到我的测试?

我正在考虑只制作一个名为tests.clj 的测试文件。一个示例模板真的很好。

【问题讨论】:

    标签: unit-testing clojure leiningen


    【解决方案1】:

    在顶层创建一个 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))))
    

    【讨论】:

    • 当 leiningen 创建一个项目时,它将创建一个测试目录,它应该已经存在一个失败的测试。
    • 此代码失败“原因:java.io.FileNotFoundException:无法在类路径上找到 mytests__init.class 或 mytests.clj:”... 这与命名空间有关吗?
    【解决方案2】:

    对于 lein 2.7.1 版:{这是来自 Linux Mint 和 Java 1.8.0_121 Java HotSpot(TM) 64 位服务器 VM 上的 Leiningen 2.7.1 } 我想通过测试做更多事情,现在有了这些新知识...

    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 "start adding test") 看看你的努力...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多