1ZOPE.TESTRUNNER(1)               User Commands              ZOPE.TESTRUNNER(1)
2
3
4

NAME

6       zope.testrunner - Zope testrunner script
7

DESCRIPTION

9       usage: zope-testrunner [-h] [--package PACKAGE] [--module MODULE]
10
11       [--test TEST] [--unit] [--non-unit] [--layer LAYER]
12              [-a  AT_LEVEL] [--all] [--list-tests] [--require-unique] [--ver‐
13              bose] [--quiet] [--progress]  [--no-progress]  [--auto-progress]
14              [--color] [--no-color] [--auto-color] [--subunit] [--subunit-v2]
15              [--slow-test  N]  [-1]   [--show-secondary-failures]   [--ndiff]
16              [--udiff]   [--cdiff]  [--ignore-new-thread  REGEXP]  [--buffer]
17              [--stop-on-error]   [--post-mortem]   [--gc   GC]   [--gc-option
18              {DEBUG_COL‐
19              LECTABLE,DEBUG_INSTANCES,DEBUG_OBJECTS,DEBUG_STATS,DEBUG_LEAK,DEBUG_UNCOL‐
20              LECTABLE,DEBUG_SAVEALL}]  [--repeat REPEAT] [--report-refcounts]
21              [--coverage COVERAGE] [--profile  {cProfile}]  [--profile-direc‐
22              tory  PROF_DIR]  [--path  PATH] [--test-path TEST_PATH] [--pack‐
23              age-path PACKAGE_PATH PACKAGE_PATH] [--tests-pattern  TESTS_PAT‐
24              TERN]     [--suite-name     SUITE_NAME]     [--test-file-pattern
25              TEST_FILE_PATTERN]   [--ignore_dir    IGNORE_DIR]    [--shuffle]
26              [--shuffle-seed   SHUFFLE_SEED]   [--version]   [-j   PROCESSES]
27              [--keepbytecode]      [--usecompiled]       [--exit-with-status]
28              [legacy_module_filter] [legacy_test_filter]
29
30       Discover and run unittest tests
31
32   positional arguments:
33       legacy_module_filter
34              DEPRECATED: Prefer to use --module.
35
36       legacy_test_filter
37              DEPRECATED: Prefer to use --test.
38
39   optional arguments:
40       -h, --help
41              show this help message and exit
42
43   Searching and filtering:
44              Options in this group are used to define which tests to run.
45
46       --package PACKAGE, --dir PACKAGE, -s PACKAGE
47              Search  the  given  package's directories for tests. This can be
48              specified more than once to run tests in multiple parts  of  the
49              source  tree.  For example, if refactoring interfaces, you don't
50              want to see the way you have broken setups for  tests  in  other
51              packages.   You *just* want to run the interface tests. Packages
52              are supplied as dotted names. For  compatibility  with  the  old
53              test  runner,  forward and backward slashed in package names are
54              converted to dots. (In the special case of packages spread  over
55              multiple  directories,  only  directories within the test search
56              path are searched. See the --path option.)
57
58       --module MODULE, -m MODULE
59              Specify a test-module filter as a regular expression.  This is a
60              case-sensitive  regular  expression,  used in search (not match)
61              mode, to limit which test modules are searched  for  tests.  The
62              regular  expressions are checked against dotted module names. In
63              an extension  of  Python  regexp  notation,  a  leading  "!"  is
64              stripped  and  causes  the  sense  of the remaining regexp to be
65              negated (so "!bc" matches any string that does not  match  "bc",
66              and  vice versa). The option can be specified multiple test-mod‐
67              ule filters. Test modules matching any of the test  filters  are
68              searched.  If  no test-module filter is specified, then all test
69              modules are used.
70
71       --test TEST, -t TEST
72              Specify a test  filter  as  a  regular  expression.  This  is  a
73              case-sensitive  regular  expression,  used in search (not match)
74              mode, to limit which tests are run. In an  extension  of  Python
75              regexp  notation, a leading "!" is stripped and causes the sense
76              of the remaining regexp to be  negated  (so  "!bc"  matches  any
77              string that does not match "bc", and vice versa). The option can
78              be specified multiple test filters. Tests matching  any  of  the
79              test  filters are included. If no test filter is specified, then
80              all tests are run.
81
82       --unit, -u
83              Run only unit tests, ignoring any layer options.
84
85       --non-unit, -f
86              Run tests other than unit tests.
87
88       --layer LAYER
89              Specify a test layer to run. The option can  be  given  multiple
90              times to specify more than one layer. If not specified, all lay‐
91              ers are run. It is common for  the  running  script  to  provide
92              default  values  for  this  option. Layers are specified regular
93              expressions, used in search mode, for dotted  names  of  objects
94              that  define a layer. In an extension of Python regexp notation,
95              a leading "!" is stripped and causes the sense of the  remaining
96              regexp  to be negated (so "!bc" matches any string that does not
97              match "bc", and vice  versa).  The  layer  named  'zope.testrun‐
98              ner.layer.UnitTests'  is  reserved for unit tests, however, take
99              note of the --unit and non-unit options.
100
101       -a AT_LEVEL, --at-level AT_LEVEL
102              Run the tests at the given level. Any test  at  a  level  at  or
103              below  this  is  run, any test at a level above this is not run.
104              Level 0 runs all tests.
105
106       --all  Run tests at all levels.
107
108       --list-tests
109              List all tests that matched your filters. Do not run any tests.
110
111       --require-unique
112              Require that all test IDs be unique and raise an error if dupli‐
113              cates are encountered.
114
115   Reporting:
116              Reporting options control basic aspects of test-runner output
117
118       --verbose, -v
119              Make output more verbose. Increment the verbosity level.
120
121       --quiet, -q
122              Make the output minimal, overriding any verbosity options.
123
124       --progress, -p
125              Output progress status
126
127       --no-progress
128              Do  not  output progress status. This is the default, but can be
129              used to counter a previous use of --progress or -p.
130
131       --auto-progress
132              Output progress status, but only when stdout is a terminal.
133
134       --color, -c
135              Colorize the output.
136
137       --no-color, -C
138              Do not colorize the output. This is the default, but can be used
139              to counter a previous use of --color or -c.
140
141       --auto-color
142              Colorize the output, but only when stdout is a terminal.
143
144       --subunit
145              Use subunit v1 output. Will not be colorized.
146
147       --subunit-v2
148              Use subunit v2 output. Will not be colorized.
149
150       --slow-test N
151              With  -c  and -vvv, highlight tests that take longer than N sec‐
152              onds (default: 10).
153
154       -1, --hide-secondary-failures
155              Report only the first failure in a doctest. (Examples after  the
156              failure are still executed, in case they do any cleanup.)
157
158       --show-secondary-failures
159              Report  all  failures in a doctest. This is the default, but can
160              be used to counter a default use of -1 or --hide-secondary-fail‐
161              ures.
162
163       --ndiff
164              When  there  is  a  doctest failure, show it as a diff using the
165              ndiff.py utility.
166
167       --udiff
168              When there is a doctest failure, show it as a unified diff.
169
170       --cdiff
171              When there is a doctest failure, show it as a context diff.
172
173       --ignore-new-thread REGEXP
174              If a thread with this name is left behind, don't report this  at
175              the  end.  This  is a case-sensitive regular expression, used in
176              match mode. This option can be used multiple times. If a  thread
177              name matches any of them, it will be ignored.
178
179       --buffer
180              Buffer  the  standard  output  and standard error streams during
181              each test. Output during a passing  test  is  discarded.  Output
182              during  failing  or  erroring  tests  is  echoed. This option is
183              enabled by default if --subunit or --subunit-v2 is  in  use,  to
184              avoid corrupting the subunit stream.
185
186   Analysis:
187              Analysis options provide tools for analysing test output.
188
189       --stop-on-error, --stop, -x
190              Stop running tests after first test failure or error.
191
192       --post-mortem, --pdb, -D
193              Enable post-mortem debugging of test failures
194
195       --gc GC, -g GC
196              Set the garbage collector generation threshold. This can be used
197              to stress memory and  gc  correctness.  Some  crashes  are  only
198              reproducible  when the threshold is set to 1 (aggressive garbage
199              collection). Do "--gc 0" to  disable  garbage  collection  alto‐
200              gether.  The --gc option can be used up to 3 times to specify up
201              to 3 of the 3 Python gc_threshold settings.
202
203       --gc-option                                                 {DEBUG_COL‐
204       LECTABLE,DEBUG_INSTANCES,DEBUG_OBJECTS,DEBUG_STATS,DEBUG_LEAK,DEBUG_UNCOL‐
205       LECTABLE,DEBUG_SAVEALL},                 -G                 {DEBUG_COL‐
206       LECTABLE,DEBUG_INSTANCES,DEBUG_OBJECTS,DEBUG_STATS,DEBUG_LEAK,DEBUG_UNCOL‐
207       LECTABLE,DEBUG_SAVEALL}
208              Set a Python gc-module debug flag. This option can be used  more
209              than once to set multiple flags.
210
211       --repeat REPEAT, -N REPEAT
212              Repeat  the tests the given number of times. This option is used
213              to make sure that tests leave their  environment  in  the  state
214              they  found  it  and, with the --report-refcounts option to look
215              for memory leaks.
216
217       --report-refcounts, -r
218              After each run of the tests, output a report summarizing changes
219              in  refcounts  by  object  type.  This option that requires that
220              Python was built with the --with-pydebug option to configure.
221
222       --coverage COVERAGE
223              Perform code-coverage analysis, saving trace data to the  direc‐
224              tory  with the given name. A code coverage summary is printed to
225              standard out.
226
227       --profile {cProfile}
228              Run the tests under cProfiler and  display  the  top  50  stats,
229              sorted by cumulative time and number of calls.
230
231       --profile-directory PROF_DIR
232              Directory   for   temporary  profiler  files.  All  files  named
233              tests_profile.*.prof in this directory will be removed.  If  you
234              intend to run multiple instances of the test runner in parallel,
235              be sure to tell them to use different directories, so they won't
236              step on each other's toes.
237
238   Setup:
239              Setup  options  are  normally supplied by the testrunner script,
240              although they can be overridden by users.
241
242       --path PATH
243              Specify a path to be added to Python's search path.  This option
244              can be used multiple times to specify multiple search paths. The
245              path is usually specified  by  the  test-runner  script  itself,
246              rather  than by users of the script, although it can be overrid‐
247              den by users.  Only tests found in the path will  be  run.  This
248              option also specifies directories to be searched for tests.  See
249              the search_directory.
250
251       --test-path TEST_PATH
252              Specify a path to be searched for tests, but not  added  to  the
253              Python  search  path.  This option can be used multiple times to
254              specify multiple search paths. The path is usually specified  by
255              the  test-runner  script  itself,  rather  than  by users of the
256              script, although it can be overridden by users. Only tests found
257              in the path will be run.
258
259       --package-path PACKAGE_PATH PACKAGE_PATH
260              Specify  a  path  to be searched for tests, but not added to the
261              Python search path. Also specify a package for  files  found  in
262              this  path.  This  is  used  to  deal  with directories that are
263              stitched into packages  that  are  not  otherwise  searched  for
264              tests.  This option takes 2 arguments. The first is a path name.
265              The second is the package name. This option can be used multiple
266              times  to  specify  multiple  search  paths. The path is usually
267              specified by the test-runner script itself, rather than by users
268              of  the  script,  although  it  can be overridden by users. Only
269              tests found in the path will be run.
270
271       --tests-pattern TESTS_PATTERN
272              The test runner looks for modules containing tests. It uses this
273              pattern  to  identify  these  modules. The modules may be either
274              packages or python files. If a test module is a package, it uses
275              the  value  given  by  the  test-file-pattern to identify python
276              files within the package containing tests.
277
278       --suite-name SUITE_NAME
279              Specify the name of the object in each test_module that contains
280              the module's test suite.
281
282       --test-file-pattern TEST_FILE_PATTERN
283              Specify  a  pattern  for identifying python files within a tests
284              package. See the documentation for the --tests-pattern option.
285
286       --ignore_dir IGNORE_DIR
287              Specifies the name of a directory to  ignore  when  looking  for
288              tests.
289
290       --shuffle
291              Shuffles the order in which tests are ran.
292
293       --shuffle-seed SHUFFLE_SEED
294              Value  used to initialize the tests shuffler. Specify a value to
295              create repeatable random ordered tests.
296
297   Other:
298              Other options
299
300       --version
301              Print the version of the testrunner, and exit.
302
303       -j PROCESSES
304              Use up to given number of parallel processes to  execute  tests.
305              May decrease test run time substantially. Defaults to 1.
306
307       --keepbytecode, -k
308              Normally,  the  test  runner  scans  the test paths and the test
309              directories looking for and deleting pyc or  pyo  files  without
310              corresponding  py  files. This is to prevent spurious test fail‐
311              ures due to finding compiled modules where source  modules  have
312              been deleted. This scan can be time consuming. Using this option
313              disables this scan. If you know you haven't removed any  modules
314              since  last  running  the  tests,  can make the test run go much
315              faster.
316
317       --usecompiled
318              Normally, a package must contain an __init__.py file,  and  only
319              .py  files can contain test code. When this option is specified,
320              compiled Python files (.pyc and .pyo) can  be  used  instead:  a
321              directory  containing  __init__.pyc or __init__.pyo is also con‐
322              sidered to be a package, and if file XYZ.py contains  tests  but
323              is  absent  while  XYZ.pyc  or  XYZ.pyo exists then the compiled
324              files will be used. This is necessary when running tests against
325              a  tree  where the .py files have been removed after compilation
326              to .pyc/.pyo. Use of this option implies --keepbytecode.
327
328       --exit-with-status
329              DEPRECATED: The test runner will always exit with a status.
330
331
332
333zope.testrunner version 5.1       March 2020                ZOPE.TESTRUNNER(1)
Impressum