簡體   English   中英

僅當MIX_ENV最初未設置為“test”時才加載混合依賴項標記為test

[英]Loading mix dependencies marked as test only when the MIX_ENV was not originally set to “test”

我希望以編程方式在我的Elixir應用程序中運行mix test任務。 這可以通過Mix.Tasks.Test.run/1完成,但是如果在沒有先設置MIX_ENV環境變量的情況下嘗試這樣做, MIX_ENV導致任務拒絕運行。

我們可以使用System.put_env/2設置env,但是一旦找到對標記為僅測試的依賴項中定義的模塊的引用,應用程序就會崩潰。

在這種情況下如何加載這些依賴項?

我們可以使用System.put_env / 2設置env,但是一旦找到對標記為僅測試的依賴項中定義的模塊的引用,應用程序就會崩潰。

這是故意的。 您需要在啟動Mix之前設置環境變量,否則Mix將加載錯誤的依賴項。

如果要創建新任務,可以通過在項目函數中設置[preferred_cli_env: [my_task: :test]]來告訴Mix運行它的首選環境。 除此之外,除了明確設置MIX_ENV之外別無選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM