3

我想在运行时打印我的每个 leiningen 测试方法。我有一个相对简单的 lein 测试文件:

(defn myfixture [b] 
  (do 
    (println "start") 
    (b)
    (println "end")
  )
)

(deftest test1 [] .....

我想在运行测试时在 repl 上看到“test1”打印出来。是否有一种简单的方法来打印方法名称(通过在 myfixture 中调用 b 的方法,或者在调用“lein test”时)?

4

1 回答 1

2

您可以像这样获取函数的名称:

(defn function-name [f]
  (:name (meta f))) 

(defn my-func []
   (println "Hello, world!"))

(let [f my-func]
  (function-name f))
;=> my-func

我不知道您正在寻找的设施是否存在于常规的 clojure.test 中,但midje有一些相当广泛的固定设施,这个链接可能值得一试。

于 2011-10-17T20:41:40.043 回答