出于在集成测试失败期间进行调试的目的,我希望仍然能够查看我的应用程序日志。有没有我可以传递给mix test
任务的命令来完成这个?
问问题
2128 次
2 回答
7
每个混合项目都有一个config.exs
文件。当 mix 开始时,它会加载这个文件。Elixir 中的一个常见模式是为不同的环境定义配置,例如test.exs
, dev.exs
,prod.exs
等。
许多像 Phoenix 这样的项目会在你的config
文件夹中为你生成这些文件,你会在你的行中看到这一config.exs
行:
import_config "#{Mix.env}.exs"
当您运行mix test
它时,它将MIX_ENV
环境变量设置为“test”,这意味着 import_config 行会加载您的test.exs
文件。
因此,为了为您的测试设置日志级别,test.exs
您可以在文件中编写以下内容:
# Print only warnings and errors during test
config :logger, level: :warn
于 2016-07-26T00:33:48.177 回答
0
为了显示IO.inspects
和其他调试日志mix test
,更改以下配置:
- 在
config/test.exs
中,找到以下行:
# Print only warnings and errors during test
config :logger, level: :warn
- 注释掉上一行并使用
compile_time_purge_matching
选项添加以下配置:
config :logger,
backends: [:console],
compile_time_purge_matching: [
[level_lower_than: :debug]
]
完成调试测试后,注释掉
compile_time_purge_matching
第 2 步中的配置并取消注释原始level: :warn
配置以避免混乱的测试日志。
旧版本注意:如果您使用的是旧版本的 Elixir,请使用以下不推荐使用的配置代替compile_time_purge_matching
:
config :logger,
backends: [:console],
compile_time_purge_level: :debug
compile_time_purge_level: debug
仍可在 Elixir 1.12 上使用,但有弃用警告。
于 2021-06-17T01:37:11.087 回答