无法在 Clojure 中使用别名运行测试

问题描述 投票:0回答:1

我刚刚开始使用 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 文件名中使用下划线。

知道为什么会发生这种情况吗?任何帮助将非常感激。谢谢!

clojure
1个回答
0
投票

这个模板项目将帮助您入门。只需克隆并运行:

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

条目
© www.soinside.com 2019 - 2024. All rights reserved.