Add support for collecting profiling information during test runs.
[fiveam.git] / src / classes.lisp
index d2dcbdd..0e7d836 100644 (file)
           dependencies, have passed. NIL - this test
           failed (either it failed or its dependecies weren't
           met. :circular this test has a circular depenedency
-          and was skipped.")))
+          and was skipped.")
+   (profiling-info :accessor profiling-info
+                   :initform nil
+                   :documentation "An object representing how
+                   much time and memory where used by the
+                   test.")
+   (collect-profiling-info :accessor collect-profiling-info
+                           :initarg :collect-profiling-info
+                           :initform nil
+                           :documentation "When T profiling
+                           information will be collected when the
+                           test is run.")))
 
 (defmethod print-object ((test testable-object) stream)
   (print-unreadable-object (test stream :type t :identity t)
   ((tests :accessor tests :initform (make-hash-table :test 'eql)
          :documentation "The hash table mapping names to test
          objects in this suite. The values in this hash table
-         can be either test-cases or other test-suites."))
+         can be either test-cases or other test-suites.")
+   (default-test-args :accessor default-test-args :initform '()
+                      :initarg :default-test-args
+                      :documentation "Arguments passed to TEST
+                      macro when using this suite."))
   (:documentation "A test suite is a collection of tests or test suites.
 
 Test suites serve to organize tests into groups so that the
@@ -41,7 +56,9 @@ suite) in the suite."))
 
 (defclass test-case (testable-object)
   ((test-lambda :initarg :test-lambda :accessor test-lambda
-               :documentation "The function to run."))
+               :documentation "The function to run.")
+   (runtime-package :initarg :runtime-package :accessor runtime-package
+                    :documentation "By default it stores *package* from the time this test was defined (macroexpanded)."))
   (:documentation "A test case is a single, named, collection of
 checks.