当查看使用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}}调用捆绑的固件函数,而不是将包含调用{{test-var}}的thunk的捆绑固件函数提供给捆绑固件函数。
补丁: clj840-20161122.diff