     _ = Map.fetch!(%{}, :bad_key)
 
     {:noreply, state}
+  end
+end
+
+defmodule Murphy do
+  import ExUnit.Assertions
+  use GenServer
+
+  def start_link(_opts) do
+    GenServer.start(__MODULE__, [])
+  end
+
+  def init(opts), do: {:ok, opts}
+
+  def handle_call(fun, _from, _state) do
+    fun.()
+  end
+
+  def call(pid, fun) do
+    ExUnit.CaptureLog.capture_log(fn ->
+      catch_exit do
+        GenServer.call(pid, fun)
+      end
+    end)
   end
 end
 

  end

  describe "handle_event/3, with an ignored process" do
    setup do
      [
        pid:
          spawn(fn ->
            Tracer.ignore()
            raise "Exception"
          end)
      ]
    end

    test "does not create a span", %{pid: pid} do
      repeatedly(fn ->
        assert Test.Tracer.get(:create_span) == :error
      end)

    {:ok, _pid} = start_supervised(Test.Tracer)
    {:ok, _pid} = start_supervised(Test.Span)
    {:ok, _pid} = start_supervised(Test.Monitor)
    {:ok, pid} = start_supervised(Murphy)

    %{pid: pid}
  end

  test "is added as a Logger backend" do
