使用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)。
我缺少什么吗?还是根本不支持?
答案 0 :(得分:1)
如果要在这样的定义上调用cider-test-run-test
,只需将defn
添加到cider-test-defining-forms
。
您还可以通过运行带有前缀参数的cider-test-run-ns-tests
来运行CIDER中当前名称空间中定义的所有测试(包括此处定义的测试)。在当前稳定的CIDER中,这意味着您可以输入C-u C-c C-t n
或C-u C-c , n
。必须使用前缀参数(C-u),以防止CIDER尝试在典型的“ $ {current.namespace} -test”命名空间中查找测试。