2017-04-04 35 views
1

我有一個項目,它依賴於我也創造了依賴乙...藥劑ExUnit測試自定義依賴環境在

當我想上一經推出測試用一個簡單的 mix test

,它得到的關係是不B,編譯並在:prod環境中啓動它...

這意味着A在:test environnement和B在:prod env。

我想要測試在:dev environnement(或除:prod之外的任何其他地方)啓動依賴項,有沒有辦法做到這一點?

+0

雖然這裏看起來矯枉過正,一個可能引入[自己的編譯器(http://elixir-lang.org/blog/2012/04/24/a-peek-inside- elixir -s-parallel-compiler /),並在請求的環境中將'B'項目的編譯委託給它。這樣,本地的項目'B'將始終與當前的'A'編譯在相同的環境中。 – mudasobwa

回答

1

也許您的MIX_ENVprodmix test不會將其更改爲test。 嘗試明確:

MIX_ENV=test mix test 

and for dev 

MIX_ENV=dev mix test 
+0

其實問題不在這裏,我沒有MIX_ENV env變量集。不過,你指出我的錯誤,Mix.env被用於編譯時間而不是運行時間。 – TheSquad

+0

不幸的是,我不能接受答案,因爲它是...編輯它,所以你指出了編譯時Mix.env(in:prod)和運行時Mix.env之間的區別,我會:-) – TheSquad

+0

「我確實沒有MIX_ENV env變量集「 - 你總是這樣做。如果你沒有明確設置,'mix'已經爲你做好了。 – mudasobwa