2024 Clojure现状调查!中分享您的想法。

欢迎!请参阅关于页面获取更多关于这是如何工作的信息。

+7
测试

当查看使用clojure.test编写的测试的(log)输出时,我希望能识别出与每个测试相关的输出。一种在:each fixtures中暴露当前测试变量的机制将实现这一点。

一种可能的机制是在调用clojure.test/test-all-vars中的each-fixture-fn之前,绑定一个带有当前测试变量的test-var变量。

建议: 提出的补丁(clj840-20161122.diff)通过使用*}允许'each' fixtures通过使用*}访问与当前执行测试关联的变量。由于此更改,'each' fixtures能够访问与当前测试变量关联的元数据,包括名称。

补丁通过更改测试及其关联的'each' fixtures运行时函数的封装顺序来实现上述功能。在此补丁之前,'each' fixtures被组合成一个单一代数函数,然后提供一个包含对{{test-var}}函数调用的thunk作为其主体。在此补丁之后,{{test-var}}函数现在负责捆绑并执行'each' fixtures,但重要的是,它是在绝对添加当前测试变量的捆绑表达式的作用域内执行的。现在{{test-var}}调用捆绑的固件函数,而不是将包含调用{{test-var}}的thunk的捆绑固件函数提供给捆绑固件函数。

补丁: clj840-20161122.diff

by
哈喽,我想提出我的观点,说我会觉得在我在Clojure测试库中添加这项功能很有用。

对我来说,Duncan的4行补丁(添加`*test-var*`并将它绑定在`each-fixture-fn`形式周围)已经足够。

我打算在重新实现`state-flow`测试库时使用基本的`clojure.test`块(`deftest` + fixtures)来更好地与现有的Clojure工具生态系统集成。由于在 fixtures 中无法访问当前测试变量,我找不到在 fixtures 中进行某些测试设置的方法(https://gist.github.com/philomates/32f8e1f7a2a4e746ac0186964aaaa2d3#file-flow-clj-L74 以代码形式概述了用例)

17 个答案

0

评论者:joelittlejohn

感谢你花时间考虑这个待办事项列表,Alex。非常感谢。我会调查这些事。

0
参考:https://clojure.atlassian.net/browse/CLJ-840(由hugoduncan汇报)
...