Test Selection

Test selection is handled by a Selector. The test loader calls the appropriate selector method for each object it encounters that it thinks may be a test.

class nose.selector.Selector(config)

Core test selector. Examines test candidates and determines whether, given the specified configuration, the test candidate should be selected as a test.

matches(name)

Does the name match my requirements?

To match, a name must match config.testMatch OR config.include and it must not match config.exclude

wantClass(cls)

Is the class a wanted test class?

A class must be a unittest.TestCase subclass, or match test name requirements. Classes that start with _ are always excluded.

wantDirectory(dirname)

Is the directory a wanted test directory?

All package directories match, so long as they do not match exclude. All other directories must match test requirements.

wantFile(file)

Is the file a wanted test file?

The file must be a python source file and match testMatch or include, and not match exclude. Files that match ignore are never wanted, regardless of plugin, testMatch, include or exclude settings.

wantFunction(function)

Is the function a test function?

wantMethod(method)

Is the method a test method?

wantModule(module)

Is the module a test module?

The tail of the module name must match test requirements. One exception: we always want __main__.

nose.selector.defaultSelector

alias of Selector

class nose.selector.TestAddress(name, workingDir=None)

A test address represents a user’s request to run a particular test. The user may specify a filename or module (or neither), and/or a callable (a class, function, or method). The naming format for test addresses is:

filename_or_module:callable

Filenames that are not absolute will be made absolute relative to the working dir.

The filename or module part will be considered a module name if it doesn’t look like a file, that is, if it doesn’t exist on the file system and it doesn’t contain any directory separators and it doesn’t end in .py.

Callables may be a class name, function name, method name, or class.method specification.