       will be ignored.
 
   """
+  @spec configure(Keyword.t()) :: :ok
   def configure(options) do
     Enum.each(options, fn {k, v} ->
       Application.put_env(:ex_unit, k, v)

  if ExUnit is started via `start/1`.

  Returns a map containing the total number of tests, the number
  of failures and the number of skipped tests.
  """
  def run do
    config = persist_defaults(configuration())
    ExUnit.Runner.run(config, nil)

  reverse order. In other words, the last callback set will be the first to be
  called.
  """
  @spec after_suite((suite_result() -> any)) :: :ok
  def after_suite(function) when is_function(function) do
    current_callbacks = Application.fetch_env!(:ex_unit, :after_suite)
    configure(after_suite: [function | current_callbacks])
