查看 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