One of my tests was from a mix task that uses Mix.shel.info/1 to log. So, I was getting logs in the middle of my tests. To fix it, at that time (that was a loooong time ago, it was not even an umbrella), I had just added this:
setup do
Mix.shell(Mix.Shell.Process)
:ok
end
Which sets the output of Mix.shell.info/1 to the current process and not the default stdout. So problem solved.
But it turned out that once I had set the Mix.shell to the process, it stills like this for all the umbrella apps, because mix application is not shut down and reopened for each app, which means the mix process will use that value until my mix test ends. To fix it I just used:
setup do
Mix.shell(Mix.Shell.Process)
on_exit fn ->
Mix.shell(Mix.Shell.IO)
end
:ok
end