在开发代码时,专心于单个失败的测试,而不是在一个命名空间中运行所有测试,这种情况有时是有效的。当运行测试需要一些时间,或者运行测试会产生大量失败时,这种情况尤为如此。目前运行单个带有固定设施的测试的最佳选项是 `test-vars` à
(使用 'clojure.test)
(定义 counter (原子 0))
(定义 n [f] (交换! counter inc) (f)) ;;一个带有状态的:once 固定设施
(使用固定设施 :once setup)
(定义测试 ex (打印 "计数器=" @(counter)))
(测试变量 [#'ex]) ;=> 计数器 = 1
(测试变量 [#'ex]) ;=> 计数器 = 2
但是,这有几个问题
- 没有类似 run-tests 的测试报告反馈(成功时没有输出)
- 需要指定定义在向量中的变量(而不是符号)
*建议:* 一个新的宏 `run-test`,它指定一个符号,并提供与 `run-tests` 相同的测试报告功能。用法
(使用 'clojure.test)
(定义 counter (原子 0))
(定义 n [f] (交换! counter inc) (f)) ;;一个带有状态的:once 固定设施
(使用固定设施 :once setup)
(定义测试 ex (打印 "计数器=" @(counter)))
(运行测试 ex)
;=> 测试用户
;=> 计数器 = 1
;=> 运行 1 个包含 0 个断言的测试。
;=> 0 个 failures,0 个 errors。
;=> {:test 1, :pass 0, :fail 0, :error 0, :type :summary}
(运行测试 ex)
;=> 测试用户
;=> 计数器 = 2
;=> 运行 1 个包含 0 个断言的测试。
;=> 0 个 failures,0 个 errors。
;=> {:test 1, :pass 0, :fail 0, :error 0, :type :summary}
*补丁:* CLJ-1908-3.patch
*Screened:* Alex Miller