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