Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何让Leiningen在测试前运行钩子?_Clojure_Leiningen - Fatal编程技术网

Clojure 如何让Leiningen在测试前运行钩子?

Clojure 如何让Leiningen在测试前运行钩子?,clojure,leiningen,Clojure,Leiningen,我希望在CLI启动测试运行之前运行函数,以便: $ lein test …例如,将配置日志以抑制严重性

我希望在CLI启动测试运行之前运行函数,以便:

$ lein test
…例如,将配置日志以抑制严重性<警告的消息

最好的方法是什么?用钩子?如果是这样,我如何将钩子执行限制为仅“测试”?在钩子执行期间,我必须查找当前任务吗

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

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

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

是的,这似乎是最好的方法。leiningen测试任务面向通过扫描名称空间和基于元数据选择测试子集来定位测试。