我使用deftest来定义一些单元测试(测试是由宏生成的,这就是标识符完全合格的原因):
(clojure.test/deftest
init-globals-test
(clojure.test/is (clojure.core/= 40 casc-gen-org.dev/*board-width*))
(clojure.test/is (clojure.core/= 40 casc-gen-org.dev/*board-height*)))
然而,当我运行测试时:
(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(https://clojure.github.io/clojure/clojure.test-api.html)的文档,但没有看到与列表测试相关的任何内容。
如何列出当前定义的测试?
答案 0 :(得分:1)
clojure.test
执行手动搜索/过滤以查找包含:test
元数据的变量,并且使用该元数据键找到的所有变量都被视为测试。我们也可以这样做,并列出将被视为单元测试的变量,其中包含一个无参数的小函数:
#(->> (all-ns)
(mapcat (comp vals ns-interns))
(filter (comp :test meta)))