lein test with-profile无法覆盖测试配置文件的环境值

时间:2018-06-20 17:04:37

标签: clojure leiningen clojure.test

我正在做一些Clojure宠物项目。我有一些如下配置文件

{:test   {:env {:database-name     "library_test",
                :host-name         "192.168.33.10"
                :username          "library_admin"
                :password          ""
                :dbtype            "postgres"
                :driver-class-name "org.postgresql.Driver"}},
 :dev    {:env {:database-name     "library",
                :host-name         "192.168.33.10"
                :username          "library_admin"
                :password          ""
                :dbtype            "postgres"
                :driver-class-name "org.postgresql.Driver"}},
 :travis {:env {:database-name     "test_library_test",
                :host-name         "localhost"
                :username          "test_user"
                :password          "password"
                :dbtype            "postgres"
                :driver-class-name "org.postgresql.Driver"}}}

现在,我正在尝试为该项目设置Travis-CI。我想在运行测试时覆盖 test 配置文件CI的值,因为我正在使用以下命令

  

有轮廓的travis测试

这里lein正在激活 travis 配置文件,但是它是从 test 配置文件而不是 travis 配置文件中获取环境变量值的。

有人遇到这样的问题吗?

1 个答案:

答案 0 :(得分:0)

为什么:默认情况下,莱因merges test profile。您可以使用lein with-profile travis,test pprint

查看有效的项目图

解决方案:我假设您正在使用environ或类似的东西。如果是这样,您可以使用UPCASE_WITH_UNDERSCORE中的env导出值(例如DATABASE_NAME=test_library_test),它们将覆盖配置文件中的值