                           :line ~(:line (meta form))}
                          nil))
                nxt))
-      `(SimpleContainer ~r))))
+      `(SimpleContainer ~r {:generator should
+                            :line ~(:line (meta &form))
+                            :form '~&form}
+                        nil))))
 
 (defmacro given
   "A series of assertions using values from contexts.

                            :line ~(:line (meta form))}
                           nil))
                 nxt))
        `(SimpleContainer ~r)))))

(defn- attributes
  "Reads optional name symbol and doc string from args,
  returns [m a] where m is a map containing keys
  [:name :doc :ns :file :line] and a is remaining arguments."
  [args]
  (let [m {:ns *ns*, :file *file*, :line @Compiler/LINE}
        m    (if (symbol? (first args)) (assoc m :name (first args)))
        args (if (symbol? (first args)) (next args) args)
        m    (if (string? (first args)) (assoc m :doc (first args)))

    :contexts => vector of contexts to run only once for this container.
    :strategy => a test-running strategy."
  [& decl]
  (let [[m decl] (assoc (attributes decl)
                   :line (:line (meta &form))
                   :generator `testing
                   :form &form)
        [opts decl] (options decl)
        {:keys [contexts strategy]} opts
        children (vec decl)
