Elixirコンパイラのwarnings_as_errors
オプションを有効にすると、 警告をエラーとして扱うことができ、コンパイル時に警告が発生した場合にコンパイルが失敗するようになります。
未使用の関数などの問題を確実に捕捉することができますし、コードの異常をより早く検知できます。
コマンドラインの例
mix compile --warnings-as-error
Mixプロジェクトの例
defmodule MyProject.MixProject do
use Mix.Project
#...
def project do
[
elixirc_options: [warnings_as_errors: warnings_as_errors(Mix.env())]
]
end
defp warnings_as_errors(:test), do: false
defp warnings_as_errors(_), do: true
#...
end
test/test_helper.exs
の例
例えばテスト環境のみで有効にしたい場合は、test/test_helper.exs
でCode.put_compiler_option/2を使用してコンパイラの設定を必要に応じて変更できます。
test_helper.exs
Code.put_compiler_option(:warnings_as_errors, true)
いくつかのNerves関連パッケージでtest/test_helper.exs
でwarnings_as_errors
オプションを有効化しています。
DashbitではCIで活用しているようです。mix compile --warnings-as-errors
に加えて、mix deps.unlock --check-unused
とmix format --check-formatted
も使っているとのことです。
MIX_ENV=test mix deps.compile
MIX_ENV=test mix compile --warnings-as-errors
mix test --warnings-as-errors
mix deps.unlock --check-unused
mix format --check-formatted
ご参考までに