     (doseq [c (:children r)]
       (spec-report* c (conj parents r)))
     (if (success? r)
-      (do (print ".") (flush))
+      (do (print (colorize "." :fg-green)) (flush))
       (do (newline)
           (print-details
            (assoc r :source

  number, doc string, and stack trace if applicable."
  [r]
  (println
   (cond (success? r) "SUCCESS"
         (:throwable r) "ERROR"
         :else "FAIL"))
  (let [m (details r)]
    (when-let [n (:name m)] (println "Name:" n))
    (when-let [d (:doc m)] (println "Doc: " d))

(defn print-summary [r]
  (let [{:keys [assertions pass fail error]} (summary r)]
    (println "Ran" assertions "assertions.")
    (print (colorize (str fail " failures")
                     (if (zero? fail) :fg-green :fg-red)))
    (print ", ")
    (print (colorize (str error " errors")
                     (if (zero? error) :fg-green :fg-red)))
    (newline)))

(defn dot-report
  "Simple spec report.  Prints a dot for each passed assertion; prints
  details for each failure."
  [r]
  (println "Running" (:name (details r))
           "at" (str (java.util.Date.)))
  (doseq [c (assertion-results r)]
    (if (success? c)
      (do (print (colorize "." :fg-green)) (flush))
      (do (newline) (print-details c))))
  (newline)
  (print-summary r))
