Add retest, sorta.
This commit is contained in:
parent
668919b15d
commit
aba61b862a
3 changed files with 25 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -8,3 +8,4 @@ leiningen*.jar
|
|||
lein-swank/lein-swank*.jar
|
||||
autodoc/
|
||||
bin/nom
|
||||
.lein-failures
|
||||
|
|
13
src/leiningen/retest.clj
Normal file
13
src/leiningen/retest.clj
Normal file
|
@ -0,0 +1,13 @@
|
|||
(ns leiningen.retest
|
||||
"Run only the test namespaces which failed last time around."
|
||||
(:require [leiningen.test]))
|
||||
|
||||
(defn retest
|
||||
"Run only the test namespaces which failed last time around.
|
||||
Requires loading leiningen.hooks.retest to :hooks in project.clj."
|
||||
[project]
|
||||
;; TODO: detect branch change; clear failure list
|
||||
(if (.exists (java.io.File. ".lein-failures"))
|
||||
(apply leiningen.test/test project (->> (slurp ".lein-failures")
|
||||
read-string sort (map name)))
|
||||
(leiningen.test/test project)))
|
|
@ -25,8 +25,18 @@ each namespace and print an overall summary."
|
|||
(doseq [n# '~namespaces]
|
||||
(require n# :reload))
|
||||
~(form-for-hook-selectors selectors)
|
||||
(let [summary# (binding [clojure.test/*test-out* *out*]
|
||||
(let [failures# (atom #{})
|
||||
;; _# (robert.hooke/add-hook
|
||||
;; #'clojure.test/report
|
||||
;; (fn report-with-failures [report# m# & args#]
|
||||
;; (when (#{:error :fail} (:type m#))
|
||||
;; (swap! failures# conj
|
||||
;; (-> clojure.test/*testing-vars*
|
||||
;; first meta :ns ns-name)))
|
||||
;; (apply report# m# args#)))
|
||||
summary# (binding [clojure.test/*test-out* *out*]
|
||||
(apply ~'clojure.test/run-tests '~namespaces))]
|
||||
(spit ".lein-failures" (pr-str @failures#))
|
||||
(when-not (= "1.5" (System/getProperty "java.specification.version"))
|
||||
(shutdown-agents))
|
||||
;; Stupid ant won't let us return anything, so write results to disk
|
||||
|
|
Loading…
Reference in a new issue