gpt4 book ai didi

elixir - 仅当 MIX_ENV 最初未设置为 "test"时才加载标记为测试的混合依赖项

转载 作者:行者123 更新时间:2023-12-01 00:53:15 25 4
gpt4 key购买 nike

我希望以编程方式运行 mix test我的 Elixir 应用程序中的任务。这可以通过 Mix.Tasks.Test.run/1 来完成,尽管尝试在没有先设置 MIX_ENV 的情况下这样做环境变量导致任务拒绝运行。

我们可以使用 System.put_env/2 设置环境,但是一旦应用程序找到对标记为仅测试的依赖项中定义的模块的引用,应用程序就会崩溃。

在这种情况下如何加载这些依赖项?

最佳答案

We can set the env with System.put_env/2, but then the application will crash once it finds a reference to a module defined in a dependancy marked as test only.



那是故意的。需要在 Mix 启动前设置环境变量,否则 Mix 会加载错误的依赖。

如果你正在创建一个新任务,你可以通过设置 [preferred_cli_env: [my_task: :test]] 来告诉 Mix 运行它的首选环境是什么。在您的项目功能中。除此之外,除了显式设置 MIX_ENV 之外,您别无选择。

关于elixir - 仅当 MIX_ENV 最初未设置为 "test"时才加载标记为测试的混合依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com