===== Testing =====
The preferred Lisp package for writing simple unit tests is [[http://common-lisp.net/project/lisp-unit|lisp-unit]].
**Running existing tests**
Just do
,r-l-s ROS_SYSTEM_TO_TEST asdf-system-to-test-tests
The asdf system for tests usually has either the ''-tests'' suffix, or ''-test'' suffix.
And then:
,!p asdf-system-to-test-tests
(run-tests)
or
...
(run-tests my-define-tests-function-name)
That's all.
**Writing unit tests for your functions**
Here is a tutorial on [[tutorials:beginner:testing|writing tests]]. It does assume that you have gone through
all the beginner tutorials and have the corresponding code for the tutorials locally available.
So, if you haven't done the beginner tutorials yet or very long ago, now is a good time to quickly refresh.
**FiveAM**
If lisp-unit isn't expressive enough for you, consider using [[http://common-lisp.net/project/fiveam/|FiveAM]].
To run tests written with FiveAM (1) load the tests asdf package, (2) change to the corresponding Lisp package in the REPL and (3) execute ''(run!)''. If ''(run!)'' doesn't do anything automatically, try specifying the test suite name: ''(run! 'MY_TEST_SUITE_NAME)''. You can find the name by ''rgrep''-ing ''(def-suite'' in your ASDF package.