失敗した統合テスト中のデバッグ目的で、アプリケーション ログを引き続き表示できるようにしたいと考えています。mix test
これを達成するためにタスクに渡すことができるコマンドはありますか?
2 に答える
すべてのミックス プロジェクトにはconfig.exs
ファイルがあります。ミックスが開始されると、このファイルがロードされます。elixir の一般的なパターンはtest.exs
、dev.exs
、prod.exs
、 などのように、さまざまな環境の構成を定義することです。
Phoenix のような多くのプロジェクトでは、これらのファイルがconfig
フォルダーに生成され、次の行が表示されますconfig.exs
。
import_config "#{Mix.env}.exs"
実行すると、環境変数が「test」mix test
に設定されます。MIX_ENV
これは、import_config 行がtest.exs
ファイルをロードすることを意味します。
したがって、テストだけのログ レベルを設定するには、test.exs
ファイルに次のように記述します。
# Print only warnings and errors during test
config :logger, level: :warn
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 でも動作します。