Lettuce is a Behavior-Driven Development tool written by Gabriel Falcão G. de Moura
user@machine:~$ [sudo] pip install lettuce
describe your first feature
Feature: Manipulate strings In order to have some fun As a programming beginner I want to manipulate strings Scenario: Uppercased strings Given I have the string "lettuce leaves" When I put it in upper case Then I see the string is "LETTUCE LEAVES"
define its steps
>>> from lettuce import * >>> @step('I have the string "(.*)"') ... def have_the_string(step, string): ... world.string = string ... >>> @step('I put it in upper case') ... def put_it_in_upper(step): ... world.string = world.string.upper() ... >>> @step('I see the string is "(.*)"') ... def see_the_string_is(step, expected): ... assert world.string == expected, \ ... "Got %s" % world.string
watch it pass
user@machine:~/Projects/my-project$ lettuce features/
github project page
Fork it, propose features, explore the code
Is this your first experience with Lettuce ?!?
So, why don’t you go straight to the quick start tutorial ?!
what is Lettuce, and what it does
reference and concepts
make your own salad
Disclaimer on unstable features you should NOT rely on.
For instance use the features step.behave_as and the xunit XML output are unstable and untested.
Lettuce is a software for testing other software, but I’ve been receiving some contributions of new features that are coming without proper tests.
These contributions have to be rewritten with proper tests, so that they won’t break so often, but they are a current source of issues in the bug tracker.
So until someone contributes with unit and functional tests for those features, or I find some time to do it myself, you should avoid relying on them.
Sincerely, Gabriel Falcão