Testing python command line apps -- Running from within the projects w/o installing

Göktuğ Kayaalp self at gkayaalp.com
Sat Nov 2 09:37:16 CET 2013


> [...]
> Testing at levels of abstraction above the unit is important, but
> Python's ‘unittest’ is not a good fit. You'll need a different tool.
>
> For behaviour testing, I recommend Behave, which lets you describe
> assertions in English and have them automatically tested
> <URL:https://pypi.python.org/pypi/behave/>.
> 
> For integration testing, I recommend an automated build system like
> Jenkins <URL:http://jenkins-ci.org/> which can get your full source
> tree, build it using your build system, and run all your arbitrary test
> commands.
> 
> For running arbitrary commands as tests, you might be interested in
> Atheist <URL:http://arco.esi.uclm.es/~david.villa/atheist/html/>. I
> haven't tried it.
> 

Thank you Ben!  I would never find these until I was desparate to do so.
Also, via these links, I have found pointers to many other useful things
too, namely behave4cmd (incubating, no code) and django-behave.

> > I write a secondary script, 'app_tester', which is similar to 'app',
> > but before running app.main.main, it inserts ~/app to the front of
> > sys.path.
> 
> I think that's a poor solution. It's the worst of both worlds: you have
> a special-case tool, but one that doesn't actually test the application
> properly since it's not a very accurate representation of how the
> application will actually be installed. Better is simply using the build
> system to do a real, temporary install, and running the tests in there.
> 

Yes, I better use virtualenvs for their purpose. I'll think of "edit -
install to virtualenv - test" cycle as "edit - compile - run" cycle for
AOT-compiled languages from now on.  Or maybe I will use CI tools to
automate this, but I am to alien to CI to assert anything.

> -- 
>  \        “Odious ideas are not entitled to hide from criticism behind |
>   `\          the human shield of their believers' feelings.” —Richard |
> _o__)                                                         Stallman |
> Ben Finney
> 
> -- 
> https://mail.python.org/mailman/listinfo/python-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/python-list/attachments/20131102/bbb7782d/attachment.sig>


More information about the Python-list mailing list