繁体   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