Use the AllModules plugin by passing --all-modules or setting the NOSE_ALL_MODULES environment variable to enable collection and execution of tests in all python modules. Normal nose behavior is to look for tests only in modules that match testMatch.
More information: ../doc_tests/test_allmodules/test_allmodules
Warning
This plugin can have surprising interactions with plugins that load tests from what nose normally considers non-test modules, such as the doctest plugin. This is because any given object in a module can’t be loaded both by a plugin and the normal nose test loader. Also, if you have functions or classes in non-test modules that look like tests but aren’t, you will likely see errors as nose attempts to run them as tests.
Enable plugin AllModules: Collect tests from all python modules. [NOSE_ALL_MODULES]
Bases: nose.plugins.base.Plugin
Collect tests from all python modules.
Register commandline options.
Override to return True for all files ending with .py
Override return True for all modules
"""Use the AllModules plugin by passing ``--all-modules`` or setting the
NOSE_ALL_MODULES environment variable to enable collection and execution of
tests in all python modules. Normal nose behavior is to look for tests only in
modules that match testMatch.
More information: :doc:`../doc_tests/test_allmodules/test_allmodules`
.. warning ::
This plugin can have surprising interactions with plugins that load tests
from what nose normally considers non-test modules, such as
the :doc:`doctest plugin <doctests>`. This is because any given
object in a module can't be loaded both by a plugin and the normal nose
:class:`test loader <nose.loader.TestLoader>`. Also, if you have functions
or classes in non-test modules that look like tests but aren't, you will
likely see errors as nose attempts to run them as tests.
"""
import os
from nose.plugins.base import Plugin
class AllModules(Plugin):
"""Collect tests from all python modules.
"""
def options(self, parser, env):
"""Register commandline options.
"""
env_opt = 'NOSE_ALL_MODULES'
parser.add_option('--all-modules',
action="store_true",
dest=self.enableOpt,
default=env.get(env_opt),
help="Enable plugin %s: %s [%s]" %
(self.__class__.__name__, self.help(), env_opt))
def wantFile(self, file):
"""Override to return True for all files ending with .py"""
# always want .py files
if file.endswith('.py'):
return True
def wantModule(self, module):
"""Override return True for all modules"""
return True