I have library that logs messages depending on the value of disable_logging
:
unless Application.get(:my_app, :disable_logging, false), do:
Logger.info("Hello World!")
Depending on MIX_ENV
I have a config for each setup:
#test.config
use Mix.Config
config :my_app, disable_logging: true
The issue here is that I don't want log messages all over my test results. So, naturally, I could set the disable_logging
to true and be done with it.
However, if I do it, I can't test whether or not the Logger is being called and if it's being called with the correct values:
So, given this I have some questions:
Declare ExUnit.setup/1
with a mandatory ExUnit.on_exit/2
to set the environment variable with Application.put_env/4
.
setup do
Application.put_env(:my_app, :disable_logging, false)
on_exit fn ->
Application.put_env(:my_app, :disable_logging, true)
end
:ok
end
I did not test it, but it should work.