"The Python programming community is well-known for their
advocacy of unit testing and functional testing. Not only do these
practices help assure that components and applications are written
right the first time, but that they stay working through months and
years of further tweaks and improvements.
"This article is the second in a three-part series on modern
Python testing frameworks. The first article in this series
introduced zope.testing, py.test, and nose, and began to describe
how they can change the way that Python projects write and maintain
their tests. This second article details the differences in how the
three frameworks are invoked, in how they examine a project to
discover tests, and how they select which of those tests then get
run. Finally, the third article will look at all of the reporting
features that have been developed to let testing support more and
more powerful techniques."