(ns test-compile (:refer-clojure :exclude [compile]) (:use [leiningen.compile] :reload) (:use [clojure.test] [clojure.java.io :only [file]] [clojure.java.shell :only [with-sh-dir sh]] [leiningen.core :only [read-project]] [leiningen.util.file :only [delete-file-recursively]])) (use-fixtures :each (fn [f] (delete-file-recursively (file "test_projects" "sample" "classes") true) (delete-file-recursively (file "test_projects" "sample_failing" "classes") true) (f))) (defn make-project [root] (binding [*ns* (find-ns 'leiningen.core)] (read-project (.getAbsolutePath (file root "project.clj"))))) (deftest test-compile (is (zero? (compile (make-project "test_projects/sample")))) (is (.exists (file "test_projects" "sample" "classes" "nom" "nom" "nom.class"))) (is (pos? (compile (make-project "test_projects/sample_failing"))))) (deftest test-plugin (is (= (eval-in-project (assoc (make-project "test_projects/sample") :eval-in-leiningen true :main nil) '(do (require 'leiningen.compile) :compiled)) :compiled)))