在查看使用clojure.test编写的测试的(log)输出时,我希望能识别与每个测试相关的输出。在:each fixture中暴露当前测试变量的一种机制可以实现这一点。
一种机制可能是在调用clojure.test/test-all-vars中的each-fixture-fn之前绑定一个含有当前测试变量的test-var变量。
建议:提出的补丁(clj840-20161122.diff)通过使用*}来允许'each' fixture访问当前执行测试的相关变量。因此,'each' fixture现在能够访问当前测试变量的元数据,包括名称。
这个补丁通过改变在运行测试及其相关'each' fixture时函数包裹的顺序来实现上述功能。在此补丁之前,'each' fixture被合并到一个单一的高阶函数中,然后向其提供一个包含对{{test-var}}函数的调用的thunk作为它的主体。在此补丁之后,{{test-var}}函数现在负责连接并执行'each' fixture,但重要的是,它这样做是在添加当前测试变量到*}的表达式作用域内。现在{{test-var}}调用连接的fixture函数,而不是提供一个调用{{test-var}}的thunk给连接的fixture函数。
补丁:clj840-20161122.diff