在查看使用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函数,而不是将一个thunk分配给连接后的fixture函数以调用{{test-var}}。
补丁:clj840-20161122.diff