I need to build some tests with python. This can usually be done coding a
module with many asserts or doing everything manually aka typing some
python -i totest.py
then playing around with the code to see if there are case where the code is
broken. But you would agree that it's better to design well the tests for your
code in order to automate this process for example. This process has already
been discussed since very long time ago and there is very few things left
behind this. Moreover, this process has also been extended to things so called
continuous integration, code coverage or you may have heard of builds that
pass. That's right, you can always put tests in the build process. Pythonistas
could rather use nose2.
Installation
You could use any environment (virtual, user, global) to install nose2
pip[3] install [--user] --upgrade nose2
For Python 2.7 and pypy, nose2 requires six version 1.1.
How this works ?
To find tests,
nose2looks for modules whose names start withtest. In
those modules,nose2will load tests from allunittest.TestCase
subclasses, as well as functions whose names start withtest.
Basically you need to write the python tests and execute nose2 to take care
of your testing jobs. And
nose2will look in each directory under the starting directory, unless the
configuration modifies the included paths. Within directories and within any
Python packages found in the starting directory and any source directories in
the starting directory,nose2will discover test modules and load tests from
them.
just
nose2
great right ?
Naming Tests
nose2 looks in
- directories that contains
__init__.py - direcotries that the lowercased name contains
test - directories the name is either
srcorlib
and (without configuration)
-
nose2will run all python files (.pyextension) that the name starts withtest - within test modules,
nose2loadsunittest.TestCasesubclasses
What's next ?
- go to python
unittestdocumentation (here python3, here python 2) - go to
nose2(rtd here) - you will figure it out
Greetings,
Top comments (0)