在开发代码时,有时将注意力集中在单个失败的测试上,而不是在命名空间中运行所有测试,这是一种有效的方法。当运行测试需要一些时间或者运行测试产生大量失败时,情况就是如此。当前运行单个带有固定数据的测试的最佳选项是`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-tests那样可以得到的测试报告反馈(在成功情况下,没有输出)
- 需要指定变量(不是符号),需要包含在向量中
**建议**:一个新的宏`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