【发布时间】:2019-03-01 13:32:30
【问题描述】:
我在使用 clojure.test 测试框架报告失败时遇到了一些问题。
现在,我知道我可以为不同的报告覆盖一些函数,以便将其打印到控制台或我希望打印到的任何位置。我也知道我可以将此输出保存到文件中。
我的问题如下......当我像这个例子一样声明一个deftest时:
(deftest test1
(is (= 1 1)
(is (= 2 1))
此测试将运行,如果我执行(run-tests) 或(test-var #'test1) 之类的操作,它将返回 nil,但打印失败。
我决定重写 :fail 方法进行报告,因为我想要的是这样的失败地图:{"expected" (:expected m), "actual" (:actual m)} 如果我只使用报告功能,这有点工作。
问题在于,当您通过 Clojure.test 框架运行测试时,会调用许多宏,但它的行为并不完全符合我的要求。
我的最终目标是:运行测试,如果有任何失败,而不是打印它们,将它们保存到地图并将地图返回给我。如果他们都通过了,那么我不在乎它会给我带来什么。
这甚至可能吗?如果某个测试失败,我不想停止测试,我只想将它记录在某个地方,最好是地图。
来源:
Clojure test with mutiple assertions
https://clojure.github.io/clojure/branch-1.1.x/clojure.test-api.html
【问题讨论】:
标签: testing clojure frameworks clojure.test