我如何获得 clojure 中的单元测试列表?
How do I get a list of unit tests in clojure?
我正在使用 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 某处有一些过时的测试,我想删除它们。
我查看了 deftest (https://clojure.github.io/clojure/clojure.test-api.html) 的文档,但没有看到任何与列表测试相关的内容。
如何列出当前定义的测试?
clojure.test
进行手动搜索/过滤以查找具有 :test
元数据的变量,并且使用该元数据键找到的所有变量都被视为测试。我们可以做同样的事情,并列出将被视为单元测试的变量,其中包含一个没有参数的小函数:
#(->> (all-ns)
(mapcat (comp vals ns-interns))
(filter (comp :test meta)))
我正在使用 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 某处有一些过时的测试,我想删除它们。
我查看了 deftest (https://clojure.github.io/clojure/clojure.test-api.html) 的文档,但没有看到任何与列表测试相关的内容。
如何列出当前定义的测试?
clojure.test
进行手动搜索/过滤以查找具有 :test
元数据的变量,并且使用该元数据键找到的所有变量都被视为测试。我们可以做同样的事情,并列出将被视为单元测试的变量,其中包含一个没有参数的小函数:
#(->> (all-ns)
(mapcat (comp vals ns-interns))
(filter (comp :test meta)))