Lettuce is a Behavior-Driven Development tool written by Gabriel Falcão G. de Moura
nutshell¶
install it
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
... def i_put_it_in_upper_case(step):
... world.string = world.string.upper()
...
>>> @step
... def see_the_string_is(step, expected):
... '''I see the string is "(.*)"'''
... assert world.string == expected, \
... "Got %s" % world.string
watch it pass
user@machine:~/Projects/my-project$ lettuce features/
getting involved !¶
github project page
Fork it, propose features, explore the code
github.com/gabrielfalcao/lettuce.
feedback
discuss
hack
donate
hands on!¶
Is this your first experience with Lettuce ?!?
So, why don’t you go straight to the quick start tutorial ?!
walkthrough¶
integrate!¶
- Lettuce and Django, for the sake of web development fun
furthermore¶
reference and concepts
- the command line, how to run lettuce with different verbosity levels, and other cli options
- features, scenarios and steps, diving into lettuce’s core
- terrain, world and hooks, stuff about setting up a environment for lettuce
- language support
- django steps
recipes¶
make your own salad
Warning
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