Finding tests in all modulesΒΆ
Normally, nose only looks for tests in modules whose names match testMatch. By default that means modules with ‘test’ or ‘Test’ at the start of the name after an underscore (_) or dash (-) or other non-alphanumeric character.
If you want to collect tests from all modules, use the --all-modules
command line argument to activate the allmodules plugin.
Note
The function nose.plugins.plugintest.run()
reformats test result
output to remove timings, which will vary from run to run, and
redirects the output to stdout.
>>> from nose.plugins.plugintest import run_buffered as run
>>> import os
>>> support = os.path.join(os.path.dirname(__file__), 'support')
>>> argv = [__file__, '-v', support]
The target directory contains a test module and a normal module.
>>> support_files = [d for d in os.listdir(support)
... if not d.startswith('.')
... and d.endswith('.py')]
>>> support_files.sort()
>>> support_files
['mod.py', 'test.py']
When run without --all-modules
, only the test module is examined for tests.
>>> run(argv=argv)
test.test ... ok
----------------------------------------------------------------------
Ran 1 test in ...s
OK
When --all-modules
is active, both modules are examined.
>>> from nose.plugins.allmodules import AllModules
>>> argv = [__file__, '-v', '--all-modules', support]
>>> run(argv=argv, plugins=[AllModules()])
mod.test ... ok
mod.test_fails ... FAIL
test.test ... ok
======================================================================
FAIL: mod.test_fails
----------------------------------------------------------------------
Traceback (most recent call last):
...
AssertionError: This test fails
----------------------------------------------------------------------
Ran 3 tests in ...s
FAILED (failures=1)