如何调试Kaocha测试?能否从REPL直接执行测试进行调试?
调试 Kaocha 测试的方法
从 REPL 直接执行测试
这是调试测试最直接的方式,你可以精准运行单个测试或指定命名空间的测试:
- 先加载测试命名空间:
(require '[your.test.namespace :as t] :reload) - 运行单个测试函数:
(t/your-test-function) - 运行整个命名空间的测试:
(clojure.test/run-tests 'your.test.namespace) - 利用 Kaocha 自带的 REPL 工具函数,还能按测试套件运行:
(require '[kaocha.repl :as k]) ;; 运行所有测试 (k/run) ;; 运行指定套件(比如 :unit) (k/run :unit) ;; 运行指定命名空间 (k/run 'your.test.namespace)
结合调试工具使用
在测试或被测代码中插入断点,配合 REPL 调试:
- 如果使用 CIDER(Emacs)或 IntelliJ Cursive,直接在代码行设置断点,然后从 REPL 运行测试,程序会在断点处暂停,你可以检查变量、步进执行。
- 也可以用
clojure.tools.namespace.repl/refresh重新加载代码,配合调试库的暂停函数(比如(break))手动触发断点。
Kaocha 调试插件的简单用法
如果你需要更详细的测试运行信息,可启用 Kaocha 的调试插件:
- 在
tests.edn配置文件中添加插件:#kaocha/v1 {:plugins [:kaocha.plugin.debug]} - 运行 Kaocha 时会输出更详细的调试日志,帮助定位测试执行中的问题,比如哪些测试被选中、执行顺序、失败时的上下文信息。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

