在开发代码时,有时关注单个失败的测试而不是运行命名空间中的所有测试是有效的。这可能在运行测试需要一些时间或运行测试产生大量失败时适用。当前运行单个测试并带有固定装置的最佳选择是`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相同的测试报告反馈(在成功时没有输出)
- 需要指定var(而不是符号)并放在一个向量中
*建议:*一个新的宏`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