aboutsummaryrefslogtreecommitdiff
path: root/lux-lein/src/leiningen/luxc/test.clj
diff options
context:
space:
mode:
Diffstat (limited to 'lux-lein/src/leiningen/luxc/test.clj')
-rw-r--r--lux-lein/src/leiningen/luxc/test.clj27
1 files changed, 27 insertions, 0 deletions
diff --git a/lux-lein/src/leiningen/luxc/test.clj b/lux-lein/src/leiningen/luxc/test.clj
new file mode 100644
index 000000000..a1b5a830c
--- /dev/null
+++ b/lux-lein/src/leiningen/luxc/test.clj
@@ -0,0 +1,27 @@
+;; Copyright (c) Eduardo Julian. All rights reserved.
+;; This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+;; If a copy of the MPL was not distributed with this file,
+;; You can obtain one at http://mozilla.org/MPL/2.0/.
+
+(ns leiningen.luxc.test
+ (:refer-clojure :exclude [test])
+ (:require [leiningen.core.classpath :as classpath]
+ (leiningen.luxc [utils :as &utils]
+ [packager :as &packager])))
+
+(defn test [project]
+ (if-let [tests-module (get-in project [:lux :tests])]
+ (do (&utils/run-process (&utils/compile-path project tests-module (concat (:test-paths project) (:source-paths project)))
+ nil
+ "[COMPILATION BEGIN]"
+ "[COMPILATION END]")
+ (let [java-cmd (get project :java-cmd "java")
+ jvm-opts (->> (get project :jvm-opts) (interpose " ") (reduce str ""))
+ output-package (str (get-in project [:lux :target] &utils/output-dir) "/"
+ (get project :jar-name &utils/output-package))]
+ (do (&packager/package project tests-module (get project :resource-paths (list)))
+ (&utils/run-process (str java-cmd " " jvm-opts " -jar " output-package)
+ nil
+ "[TEST BEGIN]"
+ "[TEST END]"))))
+ (println "Please provide a test module in [:lux :tests]")))