如何在苹果酒中运行defn的attr映射中定义的测试?

时间:2018-09-29 14:42:51

标签: emacs clojure tdd cider

使用Spacemacs中的Cider,我似乎找不到找到运行在defn属性图中定义的测试的方法。以该功能定义为例:

(defn contains-duplicates-a?
  "checks if a vector of strings contain duplicates"
  {:test #(do
            (is (contains-duplicates-a? ["aa" "aa"]))
            (is (not (contains-duplicates-a? ["aa" "aaa"])))
            (is (not(contains-duplicates-a? ["ba" "ab"])))
            (is (not (contains-duplicates-a? ["abcde" "xyz" "ecdab"]))))}
  [word-vector]
  (not(=
        (count word-vector)
        (count (distinct word-vector)))))

这种编写单元测试的样式在我公司相当普遍,并且得到我们最常用的IDE设置(IntelliJ + Cursive)的支持。我们喜欢让单元测试接近代码。

我不确定可以使用cider-test-defining-forms来实现,因为添加的内容必须是“顶层表单”(doc)。

我缺少什么吗?还是根本不支持?

1 个答案:

答案 0 :(得分:1)

如果要在这样的定义上调用cider-test-run-test,只需将defn添加到cider-test-defining-forms

您还可以通过运行带有前缀参数的cider-test-run-ns-tests来运行CIDER中当前名称空间中定义的所有测试(包括此处定义的测试)。在当前稳定的CIDER中,这意味着您可以输入C-u C-c C-t nC-u C-c , n。必须使用前缀参数(C-u),以防止CIDER尝试在典型的“ $ {current.namespace} -test”命名空间中查找测试。