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