如何在测试之前让Leiningen运行一个钩子?

时间:2014-09-18 14:59:13

标签: clojure leiningen

我想在CLI启动的测试运行之前运行一个函数,以便:

$ lein test
例如,

...将配置日志记录以抑制严重性为<的消息。 WARN。

最好的方法是什么?用钩子?如果是这样,我如何限制钩子执行以测试'只要?我是否必须在挂钩执行期间查找当前任务?

1 个答案:

答案 0 :(得分:2)

这听起来像是可以(取决于用于记录的内容)在大多数测试框架提供的测试装置中完成,例如在clojure.test

(clojure.test/use-fixtures
  :once
  (fn [f]
    (let [l (get-level)]
      (set-level! :warn)
      (try
        (f)
        (finally
          (set-level! l))))))

f是包含完整测试运行的函数,在此处调用(伪代码!)更改日志级别。