ExUnit v1.3.2 ExUnit.CaptureLog
Functionality to capture logs for testing.
Examples
defmodule AssertionTest do
use ExUnit.Case
import ExUnit.CaptureLog
test "example" do
assert capture_log(fn ->
Logger.error "log msg"
end) =~ "log msg"
end
test "check multiple captures concurrently" do
fun = fn ->
for msg <- ["hello", "hi"] do
assert capture_log(fn -> Logger.error msg end) =~ msg
end
Logger.debug "testing"
end
assert capture_log(fun) =~ "hello"
assert capture_log(fun) =~ "testing"
end
end
Summary
Functions
Captures Logger messages generated when evaluating fun
Functions
Captures Logger messages generated when evaluating fun
.
Returns the binary which is the captured output.
This function mutes the :console
backend
and captures any log messages sent to Logger.
Note that when the async
is set to true
,
the messages from another test might be captured.
It is possible to configure the level to capture with :level
,
which will set the capturing level for the duration of the
capture, for instance, if the log level is set to :error
any message with the lower level will be ignored.
The default level is nil
, which will capture all messages.
The behaviour is undetermined if async tests change Logger level.
The format, metadata and colors can be configured with :format
,
:metadata
and :colors
respectively. These three options
defaults to the :console
backend configuration parameters.