         :"test_#{message}"
       end
 
+      ExUnit.Case.__on_definition__(__ENV__, message)
       def unquote(message)(unquote(var)), do: unquote(contents)
     end
   end

          &Module.register_attribute(__MODULE__, &1, accumulate: true)

        @before_compile ExUnit.Case
        @on_definition ExUnit.Case

        use ExUnit.Callbacks
      end


  end

  @doc false
  def __on_definition__(env, name) do
    mod  = env.module
    tags = Module.get_attribute(mod, :tag) ++ Module.get_attribute(mod, :moduletag)
    tags = [line: env.line] ++ normalize_tags(tags)

    Module.put_attribute(mod, :ex_unit_tests,
      ExUnit.Test[name: name, case: mod, tags: tags])

    Module.delete_attribute(mod, :tag)
  end

  defp normalize_tags(tags) do
    Enum.reduce tags, [], fn
