gabrielfalcao / lettuce

Behavior-driven-development tool for python, inspired by Cucumber for Ruby ⛺
http://lettuce.it
GNU General Public License v3.0
1.27k stars 325 forks source link

A DjangoTestSuiteRunner for lettuce #212

Closed thedrow closed 12 years ago

thedrow commented 12 years ago

If the only tests that are lettuce tests there is no reason to use the harvest command. A built in test command already exists. In Django 1.4 a test runner will also be able to accept custom parameters (see here: https://docs.djangoproject.com/en/dev/topics/testing/#django.test.simple.DjangoTestSuiteRunner.option_list) so you could pass --with-x-unit and the other parameters that does not exist for the standard django test runner. It will be much more comfortable to run the test suite using the standard django command.

gabrielfalcao commented 12 years ago

I don't agree with that, lettuce was designed to be used separately of the custom test command. Lettuce was designed to be a tool that leverages writting tests using a special syntax that is adaptable to any speakable language, so that the business rules can be bind to software specifications.

Lettuce is not a replacement for regular unit and functional tests, and for that reason should not take place of regular tests when integrating with Django.

thedrow commented 12 years ago

Here's the thing, some people write bdd style unit/functional tests. It forces them to be much more readable and can be handed out to the project manager as a proof that the whole suit passes.

gabrielfalcao commented 12 years ago

I agree with that, but then lettuce is not the proper tool for doing so. As an example, let's think about ruby. You can write high level tests with cucumber, and unit/functional specs with RSpec. You can even notice that RSpec's documentation itself is written in cucumber and deployed through RelishApp

Although the python syntax isn't as flexible as ruby's when it comes to custom DSLs, although I've been using lettuce with nose tests, and I also miss writting spec-style tests in python.

And for that reason, I'm experimenting a new approach for BDD in python through another library: sure

gabrielfalcao commented 12 years ago

You should also try PyVows which is non-blocking and helps you writting concurrency-safe code.

thedrow commented 12 years ago

So you are saying I should use sure for unit/functional testing and lettuce for integration testing? Does that mean that you are dropping support for lettuce and you are only going to accept pull requests?

gabrielfalcao commented 12 years ago

@thedrow, it's so simple: you openned an issue and I clarified to you that I don't agree with that. Also I provided you with the very reasons that cause me not to agree with it. So if you rely on lettuce for the features you proposed in this ticket I advice you to forget it.

I just cited sure and PyVows as options so that you could solve your problem in a way that in my personal experience, would be good for you.

About the second question: "no", I'm not dropping support on lettuce, but I will only:

Last but not least, you were really bumptious and cocky when openning this ticket and that makes me very angry, since lettuce is a free software that can cause you goods, you should be a little more humble when proposing stuff. If you care to notice, I do support people that is using lettuce, but they are nice people :D