Why shouldn’t I use Swanson?¶
This is a very early version.
Non-Django use is not supported, and might never be. You’re better off with another tool.
Why should I use Swanson?¶
Swanson is designed for Django. This gives us:
- Improved speed through test reordering.
- Database setup and teardown, including fixtures. Data doesn’t persist between tests.
- Ability to test against a “live” web server.
- Third-party app extensions - South, Jenkins, etc.
By using unit tests, it couldn’t be easier to share code. Other tools use Python modules, making code re-use more difficult.
Alternative options¶
Behave / Lettuce¶
The best known Python projects. Each has decent community support, including IDE integration. They both implement their own test infrastructure.
Behave is a fantastic option. It’s mature, with a well thought-out design. Django integration isn’t included, though Django Behave seems a popular choice.
Lettuce comes with Django integration out of the box - it’s very easy to get started. Unfortunately it stores much of it’s state in a global namespace, which isn’t cleared between tests. BDD tests start to silently conflict, making it difficult to add new features.