如何在命令行传递--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
替代方案
- 临时环境变量方式
直接通过环境变量禁用编译期验证:
MIX_NO_VALIDATE_COMPILE_ENV=1 mix test
- 配置文件方式
在config/test.exs中添加以下配置,永久禁用测试环境的编译期配置验证:
config :mix, :validate_compile_env, false
内容的提问来源于stack exchange,提问作者mljrg
相关产品推荐
相关产品推荐

