我刚刚开始使用 Clojure,我正在尝试弄清楚如何使用别名运行测试。这是我的
deps.edn
文件的样子:
{:paths ["src"]
:aliases {
:test {:extra-paths ["test"]
:main-opts ["-e" "(require 'clacks/core-test) (clojure.test/run-tests 'clacks/core-test)"]}}}
这是我的目录结构:
.
├── deps.edn
├── src
│ └── clacks
│ └── core.clj
└── test
└── clacks
└── core_test.clj
这是我的
core_test.clj
文件的样子:
(ns clacks.core-test
(:require [clojure.test :refer [deftest is testing run-test]]
[clacks.core :refer [alphabet]]))
(deftest alphabet-test
(testing "Testing the alphabet"
(is (map? alphabet) "Not a map!")
(is (seq alphabet))))
(run-test alphabet-test)
最后,这是我尝试运行时遇到的错误
clj -M:test
无法找到 core_test__init.class、core_test.clj 或 类路径上的 core_test.cljc。请检查带有破折号的命名空间 块引用 在 Clojure 文件名中使用下划线。
知道为什么会发生这种情况吗?任何帮助将非常感激。谢谢!
这个模板项目将帮助您入门。只需克隆并运行:
https://github.com/io-tupelo/clj-template
~/io-tupelo/clj-template > clojure -X:test
Running tests in #{"test"}
Testing tst._bootstrap
------------------------------------------
Clojure 1.12.0-alpha3 Java 20.0.1
------------------------------------------
Testing tst.demo.core
Ran 2 tests containing 5 assertions.
0 failures, 0 errors.
如果您想坚持使用传统的单元测试文件名,例如
foo/core_test.clj
,您可以删除 :aliases -> :test -> :exec-args下
:patterns
中的
deps.edn
条目