Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在clojure中获得单元测试列表?_Clojure - Fatal编程技术网

如何在clojure中获得单元测试列表?

如何在clojure中获得单元测试列表?,clojure,Clojure,我使用deftest定义一些单元测试(测试由宏生成,这就是标识符完全合格的原因): 但是,当我运行测试时: (run-tests) 我得到以下信息: : #'casc-gen-org.dev/clj-run-runtime-uts{:type :summary, :fail 0, :error 0, :pass 6, :test 3} 它说我有3个测试和6个断言(假设我读对了),但我只希望有1个测试和2个断言。我假设我的repl somwhere中有一些过时的测试,我想删除它们 我查看了de

我使用deftest定义一些单元测试(测试由宏生成,这就是标识符完全合格的原因):

但是,当我运行测试时:

(run-tests)
我得到以下信息:

: #'casc-gen-org.dev/clj-run-runtime-uts{:type :summary, :fail 0, :error 0, :pass 6, :test 3}
它说我有3个测试和6个断言(假设我读对了),但我只希望有1个测试和2个断言。我假设我的repl somwhere中有一些过时的测试,我想删除它们

我查看了deftest()的文档,没有看到任何与清单测试相关的内容


如何列出当前定义的测试?

clojure.test
执行手动搜索/筛选,以查找具有
:test
元数据的变量,并且使用该元数据键找到的所有变量都被视为测试。我们也可以这样做,列出将被视为无参数小函数的单元测试的变量:

#(->> (all-ns)
      (mapcat (comp vals ns-interns))
      (filter (comp :test meta)))

clojure.test所做的是,它使用
所有ns
遍历每个已定义的ns,然后使用
ns实习生
遍历每个ns中的每个变量,运行元数据中带有
:test
键的变量。可能有也可能没有更优雅的方法来处理这个问题。至少现在我知道这不是一件小事,所以我不再尝试寻找一个简单的命令。这似乎相当令人惊讶,因为没有简单的方法可以做到这一点。
(>>(所有ns)(映射ns公共)(映射CAT VAL)(过滤器(comp:test meta))
工作正常,值得用它来回答吗?
#(->> (all-ns)
      (mapcat (comp vals ns-interns))
      (filter (comp :test meta)))