在开发代码时,有时专注于单个失败的测试,而不是在一个命名空间中运行所有测试,这是一种有效的方法。这可能在运行测试需要一定时间或运行测试产生大量失败时是这种情况。目前运行带有固定安排的单个测试的最佳选项是 `test-vars`,类似于
(use 'clojure.test)
(def counter (atom 0))
(defn setup [f] (swap! counter inc) (f)) ;;一颗具有状态的 :once 固定安排
(use-fixtures :once setup)
(deftest ex (println "counter =" @counter))
(test-vars [#'ex]) ;=> counter = 1
(test-vars [#'ex]) ;=> counter = 2
但是,这有以下问题
- 没有测试报告反馈,例如您在运行测试时得到(在成功时没有输出)
- 需要指定变量(而不是符号),并用向量包裹
*提议:* 一个新宏 `run-test`,可指定单个符号并进行与 `run-tests` 相同的测试报告。用法
(use 'clojure.test)
(def counter (atom 0))
(defn setup [f] (swap! counter inc) (f)) ;;一颗具有状态的 :once 固定安排
(use-fixtures :once setup)
(deftest ex (println "counter =" @counter))
(run-test ex)
;=> 测试用户
;=> counter = 1
;=> 执行了 1 个包含 0 个断言的测试。
;=> 0 个失败,0 个错误。
;=> {:test 1, :pass 0, :fail 0, :error 0, :type :summary}
(run-test ex)
;=> 测试用户
;=> counter = 2
;=> 执行了 1 个包含 0 个断言的测试。
;=> 0 个失败,0 个错误。
;=> {:test 1, :pass 0, :fail 0, :error 0, :type :summary}
*补丁:* CLJ-1908-3.patch
*筛选:* Alex Miller