usage: green [options] [target [target2 ...]] Green is a clean, colorful, fast test runner for Python unit tests. Target Specification: target Targets to test. Any number of targets may be specified. If blank, then discover all testcases in the current directory tree. Can be a directory (or package), file (or module), or fully-qualified 'dotted name' like proj.tests.test_things.TestStuff. If a directory (or package) is specified, then we will attempt to discover all tests under the directory (even if the directory is a package and the tests would not be accessible through the package's scope). In all other cases, only tests accessible from introspection of the object will be loaded. Concurrency Options: -s NUM, --processes NUM Number of processes to use to run tests. Note that your tests need to be written to avoid using the same resources (temp files, sockets, ports, etc.) for the multi-process mode to work well (--initializer and --finalizer can help provision per-process resources). Default is to run the same number of processes as your machine has logical CPUs. Note that for a small number of trivial tests, running everything in a single process may be faster than the overhead of initializing all the processes. -i DOTTED_FUNCTION, --initializer DOTTED_FUNCTION Python function to run inside of a single worker process before it starts running tests. This is the way to provision external resources that each concurrent worker process needs to have exclusive access to. Specify the function in dotted notation in a way that will be importable from the location you are running green from. -z DOTTED_FUNCTION, --finalizer DOTTED_FUNCTION Same as --initializer, only run at the end of a worker process's lifetime. Used to unprovision resources provisioned by the initializer. -X NUM, --maxtasksperchild NUM Passed directly as the `maxtasksperchild` argument to an internal `multiprocessing.pool.Pool`. A "task" in this context usually corresponds to a test suite consisting of all the tests in a single file. This option slows down testing, but has the benefit of guaranteeing a new Python process for each test suite. Format Options: -t, --termcolor Force terminal colors on. Default is to autodetect. -T, --notermcolor Force terminal colors off. Default is to autodetect. -W, --disable-windows Disable Windows support by turning off Colorama Output Options: -a, --allow-stdout Instead of capturing the stdout and stderr and presenting it in the summary of results, let it come through. Note that output from sources other than tests (like module/class setup or teardown) is never captured. -q, --quiet-stdout Instead of capturing the stdout and stderr and presenting it in the summary of results, discard it completly for successful tests. --allow-stdout option overrides it. -k, --no-skip-report Don't print the report of skipped tests after testing is done. Skips will still show up in the progress report and summary count. -e, --no-tracebacks Don't print tracebacks for failures and errors. -h, --help Show this help message and exit. -V, --version Print the version of Green and Python and exit. -l, --logging Don't configure the root logger to redirect to /dev/null, enabling internal debugging output, as well as any output test (or tested) code may be sending via the root logger. -d, --debug Enable internal debugging statements. Implies --logging. Can be specified up to three times for more debug output. -v, --verbose Verbose. Can be specified up to three times for more verbosity. Recommended levels are -v and -vv. -U, --disable-unidecode Disable unidecode which converts test output from unicode toascii by default on Windows to avoid hard- to-debug crashes. Other Options: -f, --failfast Stop execution at the first test that fails or errors. -c FILE, --config FILE Use this config file to override any values from the config file specified by environment variable GREEN_CONFIG, ~/.green, and .green in the current working directory. -p PATTERN, --file-pattern PATTERN Pattern to match test files. Default is test*.py -n PATTERN, --test-pattern PATTERN Pattern to match test method names after 'test'. Default is '*', meaning match methods named 'test*'. -j FILENAME, --junit-report FILENAME Generate a JUnit XML report. Coverage Options (Coverage 6.4.4): -r, --run-coverage Produce coverage output. -g FILE, --cov-config-file FILE Specify a coverage config file. Implies --run-coverage See the coverage documentation at https://coverage.readthedocs.io/en/v4.5.x/config.html for coverage config file syntax. The [run] and [report] sections are most relevant. -R, --quiet-coverage Do not print coverage report to stdout (coverage files will still be created). Implies --run-coverage -O, --clear-omit Green tries really hard to set up a good list of patterns of files to omit from coverage reports. If the default list catches files that you DO want to cover you can specify this flag to leave the default list empty to start with. You can then add patterns back in with --omit-patterns. The default list is something like '*/test*,*/mock*,*(temp dir)*,*(python system packages)*' -- only longer. -u PATTERN, --include-patterns PATTERN Comma-separated file-patterns to include in coverage. This implies that anything that does not match the include pattern is omitted from coverage reporting. -o PATTERN, --omit-patterns PATTERN Comma-separated file-patterns to omit from coverage. For example, if coverage reported a file mypackage/foo/bar you could omit it from coverage with 'mypackage*', '*/foo/*', or '*bar' -m X, --minimum-coverage X Integer. A minimum coverage value. If not met, then we will print a message and exit with a nonzero status. Implies --run-coverage Integration Options: --completion-file Location of the bash- and zsh-completion file. To enable bash- or zsh-completion, see ENABLING SHELL COMPLETION below. --completions Output possible completions of the given target. Used by bash- and zsh-completion. --options Output all options. Used by bash- and zsh-completion. ENABLING SHELL COMPLETION To enable bash- or zsh-completion, add the line below to the end of your .bashrc or .zshrc file (or equivalent config file): which green >& /dev/null && source "$( green --completion-file )" Warning! Generating a completion list actually discovers and loads tests -- this can be very slow if you run it in huge directories! SETUP.PY RUNNER To run green as a setup.py command, simply add green to the 'setup_requires' section in the setup.py file, and specify a target as the 'test_suite' parameter if you do not want green to load all the tests: setup( setup_requires = ['green'], install_requires = 'myproject.tests' ) Then simply run green as any other setup.py command (it accepts the same parameters as the 'green' executable): python setup.py green python setup.py green -r # to run with coverage, etc. CONFIG FILES For documentation on config files, please see https://github.com/CleanCut/green#config-files