stream, descriptions, verbosity
-.. function:: main([module[, defaultTest[, argv[, testRunner[, testLoader[, exit[, verbosity[, failfast[, catchbreak[,buffer]]]]]]]]]])
+.. function:: main([module[, defaultTest[, argv[, testRunner[, testLoader[, exit[, verbosity[, failfast[, catchbreak[, buffer]]]]]]]]]])
- A command-line program that runs a set of tests; this is primarily for making
- test modules conveniently executable. The simplest use for this function is to
- include the following line at the end of a test script::
+ A command-line program that loads a set of tests from *module* and runs them;
+ this is primarily for making test modules conveniently executable.
+ The simplest use for this function is to include the following line at the
+ end of a test script::
if __name__ == '__main__':
unittest.main()
if __name__ == '__main__':
unittest.main(verbosity=2)
+ The *argv* argument can be a list of options passed to the program, with the
+ first element being the program name. If not specified or ``None``,
+ the values of :data:`sys.argv` are used.
+
The *testRunner* argument can either be a test runner class or an already
created instance of it. By default ``main`` calls :func:`sys.exit` with
an exit code indicating success or failure of the tests run.
+ The *testLoader* argument has to be a :class:`TestLoader` instance,
+ and defaults to :data:`defaultTestLoader`.
+
``main`` supports being used from the interactive interpreter by passing in the
argument ``exit=False``. This displays the result on standard output without
calling :func:`sys.exit`::
>>> from unittest import main
>>> main(module='test_module', exit=False)
- The ``failfast``, ``catchbreak`` and ``buffer`` parameters have the same
+ The *failfast*, *catchbreak* and *buffer* parameters have the same
effect as the same-name `command-line options`_.
Calling ``main`` actually returns an instance of the ``TestProgram`` class.
This stores the result of the tests run as the ``result`` attribute.
.. versionchanged:: 2.7
- The ``exit``, ``verbosity``, ``failfast``, ``catchbreak`` and ``buffer``
+ The *exit*, *verbosity*, *failfast*, *catchbreak* and *buffer*
parameters were added.