                  (if-not result#
                    ~(let [vars (vec (remove keyword? (take-nth 2 bindings)))]
                       `(do (println "Test failed for" '~vars "being" ~vars)
-                           (is false)))
-                   (is true))))
+                           (clojure.test/is false)))
+                   (clojure.test/is true))))
             body)))
 
 ;;; Types


;;; Testing

(defn test-conexp
  "Runs tests for conexp. If with-contrib? is given and true, tests
  conexp.contrib.tests too."
  ([] (test-conexp false))
  ([with-contrib?]
     (if with-contrib?
       (do (require 'clojure.test
                    'conexp.tests
                    'conexp.contrib.tests)
           (clojure.test/run-tests 'conexp.tests
                                   'conexp.contrib.tests))
       (do (require 'clojure.test
                    'conexp.tests)
           (clojure.test/run-tests 'conexp.tests)))))

(defmacro tests-to-run

  current namespace, before all other tests in supplied as arguments."
  [& namespaces]
  `(defn ~'test-ns-hook []
     (clojure.test/test-all-vars '~(ns-name *ns*))
     (doseq [ns# '~namespaces]
       (let [result# (do (require ns#) (clojure.test/test-ns ns#))]
         (dosync
          (ref-set clojure.test/*report-counters*
                   (merge-with + @clojure.test/*report-counters* result#)))))))

(defmacro with-testing-data
  "Expects for all bindings the body to be evaluated to true. bindings
