我可以让 lein cloverage 跳过特定测试吗?

Bob*_*har 5 clojure leiningen

我在一个 Leiningen 项目中,它的集成测试注释为......

(deftest ^:manual test-v3-preview
  (preview-client "http://localhost:10313/v3/preview"))
Run Code Online (Sandbox Code Playgroud)

当我lein cloverage. 是否有我可以传递给跳过^manual测试的lein cloverage 的参数?

Phi*_*lip 3

从 cloverage 1.0.11(当前未发布)开始,您可以指定一个:test-ns-regex选项。请参阅自述文件中的文档。

使用负前瞻正则表达式,您可以运行在前瞻中不包含字符串的所有命名空间。例如

#"^((?!manual-test).)*$"
Run Code Online (Sandbox Code Playgroud)

这是一个完整的示例,因为我花了太长时间来弄清楚如何做到这一点。您还需要将 cloverage 版本指定为环境变量,否则它将使用最新发布的版本。

project.clj

:profiles
 {:cloverage  {:plugins [[lein-cloverage "1.0.11-20180518.155437-26"]]
               :cloverage {:test-ns-regex [#"^((?!manual-test).)*$"]}}}
Run Code Online (Sandbox Code Playgroud)

然后运行它:

CLOVERAGE_VERSION=1.0.11-20180518.155428-32 lein with-profile +test,+cloverage cloverage
Run Code Online (Sandbox Code Playgroud)