Loader: Egg Test discovery

What is Egg Discovery

Sometimes Python Eggs are marked as zip-safe and they can be installed zipped, instead of unzipped in an .egg folder. See http://peak.telecommunity.com/DevCenter/PythonEggs for more details. The normal nose2.plugins.loader.discovery plugin ignores modules located inside zip files.

The Egg Discovery plugin allows nose2 to discover tests within these zipped egg files.

This plugin requires pkg_resources (from setuptools) to work correctly.


To activate the plugin, include the plugin module in the plugins list in [unittest] section in a config file:

plugins = nose2.plugins.loader.eggdiscovery

Or pass the module with the --plugin command-line option:

nose2 --plugin=nose2.plugins.loader.eggdiscovery module_in_egg


Egg-based discovery test loader.

This plugin implements nose2’s automatic test module discovery inside Egg Files. It looks for test modules in packages whose names start with test, then fires the loadTestsFromModule() hook for each one to allow other plugins to load the actual tests.

It also fires handleFile() for every file that it sees, and matchPath() for every Python module, to allow other plugins to load tests from other kinds of files and to influence which modules are examined for tests.

Enable this Plugin

This plugin is built-in, but not loaded by default.

Even if you specify always-on = True in the configuration, it will not run unless you also enable it. You can do so by putting the following in a unittest.cfg or nose2.cfg file

plugins = nose2.plugins.loader.eggdiscovery

The plugins parameter may contain a list of plugin names, including nose2.plugins.loader.eggdiscovery

Configuration [discovery]





Sample configuration

The default configuration is equivalent to including the following in a unittest.cfg file.

always-on = True

Plugin class reference: EggDiscoveryLoader

class nose2.plugins.loader.eggdiscovery.EggDiscoveryLoader(*args, **kwargs)[source]

Loader plugin that can discover tests inside Egg Files


Load tests from module named by event.name


Discover tests if no test names specified