You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在命令行传递--no-validate-compile-env标志?Elixir测试报错求助

解决Mix编译期配置验证不一致的命令行方法

测试Elixir应用时遇到Mix报错::sweetsql应用的DBConnection编译期值(DBConnectionMock)与运行期值(DBConnection)不一致,该配置被标记为编译期,可能引发异常行为。此前尝试的两种传递--no-validate-compile-env标志的方式均失效:

  • mix test --no-validate-compile-env:提示未知选项
  • mix --no-validate-compile-env test:提示Mix仅识别--help和--version选项

当前环境:Erlang/OTP 27,Mix 1.17.3

正确的命令行传递方式

在Mix 1.17.x版本中,--no-validate-compile-env属于Mix的全局选项,但需要通过--分隔全局选项和子命令,正确命令为:

mix test -- --no-validate-compile-env

替代方案

  1. 临时环境变量方式
    直接通过环境变量禁用编译期验证:
MIX_NO_VALIDATE_COMPILE_ENV=1 mix test
  1. 配置文件方式
    在config/test.exs中添加以下配置,永久禁用测试环境的编译期配置验证:
config :mix, :validate_compile_env, false

内容的提问来源于stack exchange,提问作者mljrg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 10:34:50