Я думаю, что вы можете делать все, что вы хотите, просто используя профили и lein-environ
.
Простая неправильная настройка environ
.Обратите внимание, что также требуется плагин lein-environ
.
Ваш project.clj
:
:dependencies [
[environ "1.1.0"] ...] ; ********** REQUIRED *********
:plugins [[com.jakemccrary/lein-test-refresh "0.22.0"]
[lein-ancient "0.6.15"]
[lein-codox "0.10.3"]
[lein-environ "1.1.0"]] ; ********** REQUIRED *********
:db "jdbc:postgresql://localhost/default" ; *** default vals ***
:settings "settings-default.edn"
Затем сделайте profiles.clj
:
{:dev {:env {:db "jdbc:postgresql://localhost/dev"
:settings "settings-dev.edn"}}
:test {:env {:db "jdbc:postgresql://localhost/test"
:settings "settings-test.edn"}}}
Затем в вашем proj.core
ns:
(ns demo.core
(:use tupelo.core)
(:require
[environ.core :as env]
))
(defn -main []
(println "main -enter")
(spyx (env/env :db))
(spyx (env/env :settings)) )
И ваш тестовый файл:
(ns tst.demo.core
(:use demo.core tupelo.core tupelo.test)
(:require
[clojure.string :as str]
[environ.core :as env]))
(dotest
(spyx (env/env :db))
(spyx (env/env :settings))
)
Запустите код:
~/expr/demo > lein run
main -enter
(env/env :db) => "jdbc:postgresql://localhost/dev"
(env/env :settings) => "settings-dev.edn"
Запустите тесты:
~ / expr / demo> lein test
lein test _bootstrap
--------------------------------------
Clojure 1.10.0-alpha8 Java 11
--------------------------------------
lein test tst.demo.core
(env/env :db) => "jdbc:postgresql://localhost/test"
(env/env :settings) => "settings-test.edn"
Ran 2 tests containing 0 assertions.
0 failures, 0 errors.