Skip to content

Latest commit

 

History

History
64 lines (51 loc) · 1.74 KB

0166-breeze.org

File metadata and controls

64 lines (51 loc) · 1.74 KB

breeze

This project is still in the development phase but I like its idea. Breeze tries to improve the development process. An especially interesting feature: its ability to run tests on function redefinition!

To make it work, you have to use defun and deftest from breeze:

POFTHEDAY> (breeze:defun foo ()
             100)

;; When we define the test, it is immediately
;; run in a separate thread:
POFTHEDAY> (breeze:deftest test-foo
             (unless (= (foo) 42)
               (error "Foo should return 42")))
Running all tests...
WARNING: 
Test TEST-FOO failed with condition Foo should return 42

Test "TEST-FOO" failed with condition:
"Foo should return 42"
Done [0/1] tests passed.

;; Now I'm going to fix it.
;; Pay attention on the output. Breeze automatically
;; runs tests of the 'foo function in a separate thread:
POFTHEDAY> (breeze:defun foo ()
             42)
Running all tests....
Done [1/1] tests passed.

;; Now let's break it again!
POFTHEDAY> (breeze:defun foo ()
             77)
FOO
Running all tests...
WARNING: 
Test TEST-FOO failed with condition Foo should return 42

Test "TEST-FOO" failed with condition:
"Foo should return 42"
Done [0/1] tests passed.

There is also some extension for Emacs and SLIME, but I didn’t test it yet. I hope the author will make this system more usable.

The first feature which comes to mind is support for existing unit-testing frameworks. The second is an indicator for the Emacs mode-line if some tests failed after I hit C-c C-c.

To conclude, make good tooling! Tooling should be convenient!