Я привык использовать Clojure с Leiningen.
Но у меня есть новый проект, который я загрузил с LightMod. И он использует инструменты CLI и deps.
Это работает, но теперь я хочу добавить к нему некоторое модульное тестирование.
Итак, вот (немного упрощенная версия) мой файл deps.edn:
{:paths ["src" "resources"],
:aliases
{
:dev
{:extra-deps
{orchestra #:mvn{:version "2018.12.06-2"},
expound #:mvn{:version "0.7.2"},
nightlight #:mvn{:version "RELEASE"},
com.bhauman/figwheel-main #:mvn{:version "0.2.0"}},
:main-opts ["dev.clj"]},
:test
{:extra-paths ["test"]
:extra-deps {com.cognitect/test-runner {:git/url "https://github.com/cognitect-labs/test-runner.git" :sha "209b64504cb3bd3b99ecfec7937b358a879f55c1"}}
:main-opts ["-m" "cognitect.test-runner"]}
:prod
{:extra-deps
{leiningen #:mvn{:version "2.9.0"},
org.clojure/clojurescript #:mvn{:version "1.10.439"}},
:main-opts ["prod.clj"]},
:app
{:extra-deps
{
markdown-clj {:mvn/version "1.10.1"}
instaparse {
:mvn/version"1.4.10"
}
... MORE ...
}}}}
Теперь этот файл работает нормально с обоими компиляциями: dev и: prod.
Но теперь я только что добавил псевдоним: test.
И помещаю свои тесты в test / myns / core_tests.clj
Однако, когда я пытаюсь запустить тесты, я получаю это
Could not locate markdown/core__init.class, markdown/core.clj or markdown/core.cljc on classpath
Итак, моя интерпретация. В то время как ветки: dev и: prod успешно извлекают все зависимости в ветке: app. Тестовая ветвь не тянет в уценке. (И, вероятно, ни одна из других зависимостей, объявленных в: app
Так почему это должно быть? И как я могу явно сказать моему предложению: test, что ему нужно использовать все те же зависимости, которые используются в: dev и : прод