> [...] > 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
signature.asc
Description: Digital signature
-- https://mail.python.org/mailman/listinfo/python-list