Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Test drive your Common Lisp application from Cucumber!

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 examples
Octocat-spinner-32 features
Octocat-spinner-32 lib
Octocat-spinner-32 self_test
Octocat-spinner-32 test
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION
Octocat-spinner-32 clucumber.gemspec
README.md

Clucumber, the CL Cucumber adapter

This is a (somewhat complete) implementation of the cucumber wire protocol in (as portable as possible) Common Lisp. This means you can write cucumber features, and write lisp code to execute your steps.

Using clucumber

First, install the clucumber gem via rubygems:

gem install clucumber

On the lisp side, clucumber depends on cl-interpol, cl-ppcre, trivial-backtrace, usocket and st-json. All of these are available in quicklisp, and I recommend you use this to manage your lisp libraries.

Getting started

First, you write your cucumber features like you would any other.

Then you define cucumber steps in CL: Just place them in features/step_definitions/*.lisp.

If your application needs any support code, place that in support/*.lisp.

Files in support and step_definitions/ are loaded (not file-compiled) in alphabetical order, with support/ files being loaded before step definitions.

Put a .wire file into your step_definitions dir; I like to name it features/step_definitions/clucumber.wire. See examples/clucumber.wire for one that works for me.

In your features/support/env.rb, you use something like the included example code.

The code in this file will launch a lisp with clucumber loaded (pass :lisp parameter to ClucumberSubprocess.new to specify which lisp, it defaults to sbcl), and (if you used the examples/clucumber.wire file) start listening on port 42427.

Then, on the command line, you run cucumber:

    $ cucumber

And you watch the green or yellow lines zip by.

To see an example of a test suite that uses clucumber, see the features directory in cl-beanstalk. It comes with steps defined in ruby and Common Lisp.

Something went wrong with that request. Please try again.