Sunday, April 26, 2015

Buttercup 1.1 Released

I just released version 1.1 of Buttercup, the Behavior-Driven Emacs Lisp Testing framework.

Buttercup is a behavior-driven development framework for testing Emacs Lisp code. It is heavily inspired by Jasmine.

Installation and Use

Buttercup is available from Marmalade and MELPA Stable.

Example test suite:

(describe "A suite"
  (it "contains a spec with an expectation"
    (expect t :to-be t)))

Suites group tests, and suites can be nested. Contrary to ERT, suites can share set-up and tear-down code for tests, and Buttercup comes with built-in support for mocks in the form of spies. See the package homepage above for a full description of the syntax for test suites and specs.

Buttercup comes with a shell script to run the default discover runner. If used together with cask, cask exec buttercup will find, load and run test suites in your project.

Changes Since 1.0

  • Buttercup now sports a full reporter interface, in case you want to write your own reporter. By default, there is a batch and an interactive reporter.
  • Reporters now display failed tests properly at the end of the test run, together with a properly-formatted backtrace.
  • Pending specs and disabled suites as in Jasmine are now supported.
  • Emacs 24.5 is now officially supported.
  • There’s now a buttercup script to run the most common command line.
  • Test runners are now autoloaded.
  • Test discovery now ignores dot files and dot directories.
  • Buttercup tests can now be instrumented with Edebug.