Hello, On Tue, 16 Jul 2013 11:53:17 +0200 Milo Casagrande <[email protected]> wrote:
> Hello everyone, > > one of the discussion we had during connect was to find (and use) a > common testing framework for unit (and maybe beyond) tests. > What we should use is probably a framework that still supports all the > unittest based tests we already have in our projects. > > Following also other people suggestions, I looked around and did some > initial tests. What follows is a list of what we could use: > > - nose: https://nose.readthedocs.org/en/latest/ +10 Nose is truly Pythonic tool, intended to do testing pleasant and unobtrusive (while all the usual feature supported). There's no obscure APIs to learn, everything just intuitive and natural: def test_obvious(): assert 2 + 2 == 4 def test_exc(): try: 1/0 assert False, "Math doomed" exception: pass To run tests, just run "nosetests" - it will collected all the test from intuitive, convention-over-configuration places. *Lot* of (truly Pythonic) projects use nosetest. > - pytest: http://pytest.org/latest/ Didn't use that, http://pytest.org/latest/getting-started.html#getstarted shows ability to write test with asserts, that's good, but then, there's nosetest already ;-). > - stick with Python provided unittest: no need to install anything > else But very verbose, alien to Python, RSI-provoking syntax. Also, no decent test runner anyway, so something needs to be installed. nosetest can handle unittest of course. > > Personally I do not dislike unittest even if of the three is the most > verbose, but pytest is a powerful handy tool and easier to use (you > don't even need to inherit from TestCase). > > I didn't play with pytest and Django tests, but looks like it is > possible to easily integrate it: > > http://pytest-django.readthedocs.org/en/latest/ > > Tools: > > These kind of tools are more targeted at mocking/patching objects or > behavior, should we avoid them or use them? (no flame wars please! :-) > Personally I find that sometimes (probably too often) I need them. Sure, you can't do complete testing without them (mock objects), and without patching, can't do that comfortable (inversion of control/dependency injection is not the natural Python patterns after all). > If we need them we should suggest which one to use, and stick with it: > > - mock: http://www.voidspace.org.uk/python/mock/ Classy tool, has its corner cases, but that's because it's rather powerful. Just as with nosetest, truly Python - start is easy, learn more as you need. > - mocker: https://pypi.python.org/pypi/mocker > > There are more, but these two are the ones I know about or have been > using. Other suggestions? > > Ciao! -- Best Regards, Paul Linaro.org | Open source software for ARM SoCs Follow Linaro: http://www.facebook.com/pages/Linaro http://twitter.com/#!/linaroorg - http://www.linaro.org/linaro-blog _______________________________________________ linaro-validation mailing list [email protected] http://lists.linaro.org/mailman/listinfo/linaro-validation
