删除 Clojure REPL 中定义的测试
在 Clojure 中,我决定从编写 :test
元数据元素转向使用 deftest
。为了确保我已正确编写 deftest
,我尝试在 REPL 中重新加载并运行测试。
虽然我不关心 重复测试本身,当我从源中删除测试时,我希望在重新加载源时将其删除。 清除 REPL 不会删除测试。
那么,我从 Clojure REPL 中删除了多少通过 deftest
定义的测试
In Clojure, I have decided to move from writing :test
metadata elements to using deftest
. To see that I have written the deftest
correctly, I try reloading and running the tests with a reload in the REPL.
While I don't care about duplicate tests per se, when I remove a test from the source, I would like it removed when I reload the source. Clearing the REPL doesn't remove the tests.
So, How many I remove tests defined via deftest
from the Clojure REPL
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
clojure.test 通过反映命名空间来查找测试变量,因此您可以使用 ns-unmap。有关完整详细信息,请参阅我之前对类似问题的回答
clojure.test finds test vars by reflecting on namespaces, so you can use ns-unmap. For full details, see my earlier answer to a similar question
我不认为你可以在 clojure 中一一删除变量(我可能是错的;如果这是真的,这似乎是一个奇怪的疏忽)。摆脱旧定义的最简单方法可能是使用
remove-ns
摆脱命名空间,然后重新评估文件/命名空间/定义。I don't think you can remove vars one-by-one in clojure (I may be wrong; it seems like a strange oversight if that's true). The easiest way to get rid of old definitions is probably to use
remove-ns
to get rid of the namespace and then re-evaluate the file / namespace / definitions.