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