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