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