           {:ok, sup} = Supervisor.start_link([], @supervisor_opts)
           ExUnit.OnExitHandler.put_supervisor(self(), sup)
           sup
+
         {:ok, sup} ->
           sup
+
         :error ->
           raise ArgumentError, "start_supervised/2 can only be invoked from the test process"
       end

  This function returns `{:ok, pid}` in case of success, otherwise it
  returns `{:error, reason}`.
  """
  @spec start_supervised(Supervisor.child_spec | module | {module, term}, keyword) ::
        Supervisor.on_start_child
  def start_supervised(child_spec_or_module, opts \\ []) do
    sup =
      case ExUnit.OnExitHandler.get_supervisor(self()) do

      do_setup_all(quote(do: _), block)
    else
      quote do
        @ex_unit_describe &&
          raise "cannot invoke setup_all/1 inside describe as setup_all/1 " <>
                  "always applies to all tests in a module"

        @ex_unit_setup_all ExUnit.Callbacks.__callback__(unquote(block), nil) ++
                             @ex_unit_setup_all
      end
    end
  end
