在开发代码时,有时有针对性地关注一个失败的测试,而不是在命名空间中运行所有测试,可能更有效。这可能是在运行测试需要一些时间或运行测试产生大量失败时的情况。目前运行单个测试的最佳选项是`test-vars` like:
(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