("print"     :target)
     ("read"      :both)
     ("compiler"  :both)
-    ("toplevel"  :target)
-    ;; Tests
-    ("tests"            :test)
-    ("setf"             :test)
-    ("eval"             :test)
-    ("tests-report"     :test)))
+    ("toplevel"  :target)))
 
 (defun source-pathname
     (filename &key (directory '(:relative "src")) (type nil) (defaults filename))
         (ls-compile-file (source-pathname (car input) :type "lisp") out))))
   ;; Tests
   (with-open-file (out "tests.js" :direction :output :if-exists :supersede)
-    (dolist (input *source*)
-      (when (member (cadr input) '(:test))
-        (ls-compile-file (source-pathname (car input)
-                                          :directory '(:relative "tests")
-                                          :type "lisp")
-                         out)))))
+    (dolist (input (append (directory "tests.lisp")
+                           (directory "tests/*.lisp")
+                           (directory "tests-report.lisp"))) 
+      (ls-compile-file input out))))
 
--- /dev/null
+(write-line "")
+(write-string "Finished. The execution took ")
+(write-string (prin1-to-string (/ (- (get-internal-real-time) *timestamp*) internal-time-units-per-second)))
+(write-line " seconds.")
+
+(cond
+  ((zerop *failed-tets*)
+   (write-string "All tests (")
+   (write-string (prin1-to-string *passed-tets*))
+   (write-line ") passed successfully"))
+  (t
+   (write-string (prin1-to-string *failed-tets*))
+   (write-string "/")
+   (write-string (prin1-to-string (+ *passed-tets* *failed-tets*)))
+   (write-line " failed.")))
 
--- /dev/null
+(defvar *passed-tets* 0)
+(defvar *failed-tets* 0)
+(defvar *timestamp* (get-internal-real-time))
+
+(defmacro test (condition)
+  `(cond
+     (,condition
+      (write-line ,(concat "Test `" (prin1-to-string condition) "' passed"))
+      (incf *passed-tets*))
+     (t
+      (write-line ,(concat "Test `" (prin1-to-string condition) "' failed."))
+      (incf *failed-tets*))))
+
+(write-line "Running tests...")
+(write-line "")
 
+++ /dev/null
-(write-line "")
-(write-string "Finished. The execution took ")
-(write-string (prin1-to-string (/ (- (get-internal-real-time) *timestamp*) internal-time-units-per-second)))
-(write-line " seconds.")
-
-(cond
-  ((zerop *failed-tets*)
-   (write-string "All tests (")
-   (write-string (prin1-to-string *passed-tets*))
-   (write-line ") passed successfully"))
-  (t
-   (write-string (prin1-to-string *failed-tets*))
-   (write-string "/")
-   (write-string (prin1-to-string (+ *passed-tets* *failed-tets*)))
-   (write-line " failed.")))
 
+++ /dev/null
-(defvar *passed-tets* 0)
-(defvar *failed-tets* 0)
-(defvar *timestamp* (get-internal-real-time))
-
-(defmacro test (condition)
-  `(cond
-     (,condition
-      (write-line ,(concat "Test `" (prin1-to-string condition) "' passed"))
-      (incf *passed-tets*))
-     (t
-      (write-line ,(concat "Test `" (prin1-to-string condition) "' failed."))
-      (incf *failed-tets*))))
-
-(write-line "Running tests...")
-(write-line "")