| Index: third_party/coverage-3.6/doc/cmd.rst
|
| diff --git a/third_party/coverage-3.6/doc/cmd.rst b/third_party/coverage-3.6/doc/cmd.rst
|
| deleted file mode 100644
|
| index 6b1d15dc65b6c721d83e73305a789efe18fd41fe..0000000000000000000000000000000000000000
|
| --- a/third_party/coverage-3.6/doc/cmd.rst
|
| +++ /dev/null
|
| @@ -1,365 +0,0 @@
|
| -.. _cmd:
|
| -
|
| -===========================
|
| -Coverage command line usage
|
| -===========================
|
| -
|
| -:history: 20090524T134300, brand new docs.
|
| -:history: 20090613T164000, final touches for 3.0
|
| -:history: 20090913T084400, new command line syntax
|
| -:history: 20091004T170700, changes for 3.1
|
| -:history: 20091127T200700, changes for 3.2
|
| -:history: 20100223T200600, changes for 3.3
|
| -:history: 20100725T211700, updated for 3.4
|
| -:history: 20110827T212500, updated for 3.5.1, combining aliases
|
| -:history: 20120119T075600, Added some clarification from George Paci
|
| -:history: 20120504T091800, Added info about execution warnings, and 3.5.2 stuff.
|
| -:history: 20120807T211600, Clarified the combine rules.
|
| -:history: 20121003T074600, Fixed an option reference, https://bitbucket.org/ned/coveragepy/issue/200/documentation-mentions-output-xml-instead
|
| -:history: 20121117T091000, Added command aliases.
|
| -
|
| -.. highlight:: console
|
| -
|
| -
|
| -When you install coverage.py, a command-line script simply called ``coverage``
|
| -is placed in your Python scripts directory. To help with multi-version
|
| -installs, it will also create either a ``coverage2`` or ``coverage3`` alias,
|
| -and a ``coverage-X.Y`` alias, depending on the version of Python you're using.
|
| -For example, when installing on Python 2.7, you will be able to use
|
| -``coverage``, ``coverage2``, or ``coverage-2.7`` on the command line.
|
| -
|
| -Coverage has a number of commands which determine the action performed:
|
| -
|
| -* **run** -- Run a Python program and collect execution data.
|
| -
|
| -* **report** -- Report coverage results.
|
| -
|
| -* **html** -- Produce annotated HTML listings with coverage results.
|
| -
|
| -* **xml** -- Produce an XML report with coverage results.
|
| -
|
| -* **annotate** -- Annotate source files with coverage results.
|
| -
|
| -* **erase** -- Erase previously collected coverage data.
|
| -
|
| -* **combine** -- Combine together a number of data files.
|
| -
|
| -* **debug** -- Get diagnostic information.
|
| -
|
| -Help is available with the **help** command, or with the ``--help`` switch on
|
| -any other command::
|
| -
|
| - $ coverage help
|
| - $ coverage help run
|
| - $ coverage run --help
|
| -
|
| -Version information for coverage.py can be displayed with
|
| -``coverage --version``.
|
| -
|
| -Any command can use a configuration file by specifying it with the
|
| -``--rcfile=FILE`` command-line switch. Any option you can set on the command
|
| -line can also be set in the configuration file. This can be a better way to
|
| -control coverage.py since the configuration file can be checked into source
|
| -control, and can provide options that other invocation techniques (like test
|
| -runner plugins) may not offer. See :ref:`config` for more details.
|
| -
|
| -
|
| -.. _cmd_execution:
|
| -
|
| -Execution
|
| ----------
|
| -
|
| -You collect execution data by running your Python program with the **run**
|
| -command::
|
| -
|
| - $ coverage run my_program.py arg1 arg2
|
| - blah blah ..your program's output.. blah blah
|
| -
|
| -Your program runs just as if it had been invoked with the Python command line.
|
| -Arguments after your file name are passed to your program as usual in
|
| -``sys.argv``. Rather than providing a filename, you can use the ``-m`` switch
|
| -and specify an importable module name instead, just as you can with the
|
| -Python ``-m`` switch::
|
| -
|
| - $ coverage run -m packagename.modulename arg1 arg2
|
| - blah blah ..your program's output.. blah blah
|
| -
|
| -If you want :ref:`branch coverage <branch>` measurement, use the ``--branch``
|
| -flag. Otherwise only statement coverage is measured.
|
| -
|
| -You can specify the code to measure with the ``--source``, ``--include``, and
|
| -``--omit`` switches. See :ref:`Specifying source files <source_execution>` for
|
| -details of their interpretation. Remember to put options for run after "run",
|
| -but before the program invocation::
|
| -
|
| - $ coverage run --source=dir1,dir2 my_program.py arg1 arg2
|
| - $ coverage run --source=dir1,dir2 -m packagename.modulename arg1 arg2
|
| -
|
| -By default, coverage does not measure code installed with the Python
|
| -interpreter, for example, the standard library. If you want to measure that
|
| -code as well as your own, add the ``-L`` flag.
|
| -
|
| -If your coverage results seem to be overlooking code that you know has been
|
| -executed, try running coverage again with the ``--timid`` flag. This uses a
|
| -simpler but slower trace method. Projects that use DecoratorTools, including
|
| -TurboGears, will need to use ``--timid`` to get correct results. This option
|
| -can also be enabled by setting the environment variable COVERAGE_OPTIONS to
|
| -``--timid``.
|
| -
|
| -If you are measuring coverage in a multi-process program, or across a number of
|
| -machines, you'll want the ``--parallel-mode`` switch to keep the data separate
|
| -during measurement. See :ref:`cmd_combining` below.
|
| -
|
| -During execution, coverage.py may warn you about conditions it detects that
|
| -could affect the measurement process. The possible warnings include:
|
| -
|
| -* "Trace function changed, measurement is likely wrong: XXX"
|
| -
|
| - Coverage measurement depends on a Python setting called the trace function.
|
| - Other Python code in your product might change that function, which will
|
| - disrupt coverage.py's measurement. This warning indicate that has happened.
|
| - The XXX in the message is the new trace function value, which might provide
|
| - a clue to the cause.
|
| -
|
| -* "Module XXX has no Python source"
|
| -
|
| - You asked coverage.py to measure module XXX, but once it was imported, it
|
| - turned out not to have a corresponding .py file. Without a .py file,
|
| - coverage.py can't report on missing lines.
|
| -
|
| -* "Module XXX was never imported"
|
| -
|
| - You asked coverage.py to measure module XXX, but it was never imported by
|
| - your program.
|
| -
|
| -* "No data was collected"
|
| -
|
| - Coverage.py ran your program, but didn't measure any lines as executed.
|
| - This could be because you asked to measure only modules that never ran,
|
| - or for other reasons.
|
| -
|
| -
|
| -
|
| -.. _cmd_datafile:
|
| -
|
| -Data file
|
| ----------
|
| -
|
| -Coverage collects execution data in a file called ".coverage". If need be, you
|
| -can set a new file name with the COVERAGE_FILE environment variable.
|
| -
|
| -By default,each run of your program starts with an empty data set. If you need
|
| -to run your program multiple times to get complete data (for example, because
|
| -you need to supply disjoint options), you can accumulate data across runs with
|
| -the ``-a`` flag on the **run** command.
|
| -
|
| -To erase the collected data, use the **erase** command::
|
| -
|
| - $ coverage erase
|
| -
|
| -
|
| -.. _cmd_combining:
|
| -
|
| -Combining data files
|
| ---------------------
|
| -
|
| -If you need to collect coverage data from different machines or processes,
|
| -coverage can combine multiple files into one for reporting. Use the ``-p`` flag
|
| -during execution to append distinguishing information to the .coverage data
|
| -file name.
|
| -
|
| -Once you have created a number of these files, you can copy them all to a single
|
| -directory, and use the **combine** command to combine them into one .coverage
|
| -data file::
|
| -
|
| - $ coverage combine
|
| -
|
| -If the different machines run your code from different places in their file
|
| -systems, coverage won't know how to combine the data. You can tell coverage
|
| -how the different locations correlate with a ``[paths]`` section in your
|
| -configuration file. See :ref:`config_paths` for details.
|
| -
|
| -If you are collecting and renaming your own data files, you'll need to name
|
| -them properly for **combine** to find them. It looks for files named after
|
| -the data file (defaulting to ".coverage", overridable with COVERAGE_FILE), with
|
| -a dotted suffix. All such files in the current directory will be combined.
|
| -Here are some examples of combinable data files::
|
| -
|
| - .coverage.machine1
|
| - .coverage.20120807T212300
|
| - .coverage.last_good_run.ok
|
| -
|
| -
|
| -.. _cmd_reporting:
|
| -
|
| -Reporting
|
| ----------
|
| -
|
| -Coverage provides a few styles of reporting, with the **report**, **html**,
|
| -**annotate**, and **xml** commands. They share a number of common options.
|
| -
|
| -The command-line arguments are module or file names to report on, if you'd like
|
| -to report on a subset of the data collected.
|
| -
|
| -The ``--include`` and ``--omit`` flags specify lists of filename patterns. They
|
| -control which files to report on, and are described in more detail
|
| -in :ref:`source`.
|
| -
|
| -The ``-i`` or ``--ignore-errors`` switch tells coverage.py to ignore problems
|
| -encountered trying to find source files to report on. This can be useful if
|
| -some files are missing, or if your Python execution is tricky enough that file
|
| -names are synthesized without real source files.
|
| -
|
| -If you provide a ``--fail-under`` value, the total percentage covered will be
|
| -compared to that value. If it is less, the command will exit with a status
|
| -code of 2, indicating that the total coverage was less than your target. This
|
| -can be used as part of a pass/fail condition, for example in a continuous
|
| -integration server. This option isn't available for **annotate**.
|
| -
|
| -
|
| -.. _cmd_summary:
|
| -
|
| -Coverage summary
|
| -----------------
|
| -
|
| -The simplest reporting is a textual summary produced with **report**::
|
| -
|
| - $ coverage report
|
| - Name Stmts Miss Cover
|
| - ---------------------------------------------
|
| - my_program 20 4 80%
|
| - my_module 15 2 86%
|
| - my_other_module 56 6 89%
|
| - ---------------------------------------------
|
| - TOTAL 91 12 87%
|
| -
|
| -For each module executed, the report shows the count of executable statements,
|
| -the number of those statements missed, and the resulting coverage, expressed
|
| -as a percentage.
|
| -
|
| -The ``-m`` flag also shows the line numbers of missing statements::
|
| -
|
| - $ coverage report -m
|
| - Name Stmts Miss Cover Missing
|
| - -------------------------------------------------------
|
| - my_program 20 4 80% 33-35, 39
|
| - my_module 15 2 86% 8, 12
|
| - my_other_module 56 6 89% 17-23
|
| - -------------------------------------------------------
|
| - TOTAL 91 12 87%
|
| -
|
| -You can restrict the report to only certain files by naming them on the
|
| -command line::
|
| -
|
| - $ coverage report -m my_program.py my_other_module.py
|
| - Name Stmts Miss Cover Missing
|
| - -------------------------------------------------------
|
| - my_program 20 4 80% 33-35, 39
|
| - my_other_module 56 6 89% 17-23
|
| - -------------------------------------------------------
|
| - TOTAL 76 10 87%
|
| -
|
| -Other common reporting options are described above in :ref:`cmd_reporting`.
|
| -
|
| -
|
| -.. _cmd_html:
|
| -
|
| -HTML annotation
|
| ----------------
|
| -
|
| -Coverage can annotate your source code for which lines were executed
|
| -and which were not. The **html** command creates an HTML report similar to the
|
| -**report** summary, but as an HTML file. Each module name links to the source
|
| -file decorated to show the status of each line.
|
| -
|
| -Here's a `sample report`__.
|
| -
|
| -__ /code/coverage/sample_html/index.html
|
| -
|
| -Lines are highlighted green for executed, red for missing, and gray for
|
| -excluded. The counts at the top of the file are buttons to turn on and off
|
| -the highlighting.
|
| -
|
| -A number of keyboard shortcuts are available for navigating the report.
|
| -Click the keyboard icon in the upper right to see the complete list.
|
| -
|
| -The title of the report can be set with the ``title`` setting in the
|
| -``[html]`` section of the configuration file, or the ``--title`` switch on
|
| -the command line.
|
| -
|
| -If you prefer a different style for your HTML report, you can provide your
|
| -own CSS file to apply, by specifying a CSS file in the ``[html]`` section of
|
| -the configuration file. See :ref:`config_html` for details.
|
| -
|
| -The ``-d`` argument specifies an output directory, defaulting to "htmlcov"::
|
| -
|
| - $ coverage html -d coverage_html
|
| -
|
| -Other common reporting options are described above in :ref:`cmd_reporting`.
|
| -
|
| -Generating the HTML report can be time-consuming. Stored with the HTML report
|
| -is a data file that is used to speed up reporting the next time. If you
|
| -generate a new report into the same directory, coverage.py will skip
|
| -generating unchanged pages, making the process faster.
|
| -
|
| -
|
| -.. _cmd_annotation:
|
| -
|
| -Text annotation
|
| ----------------
|
| -
|
| -The **annotate** command produces a text annotation of your source code. With a
|
| -``-d`` argument specifying an output directory, each Python file becomes a text
|
| -file in that directory. Without ``-d``, the files are written into the same
|
| -directories as the original Python files.
|
| -
|
| -Coverage status for each line of source is indicated with a character prefix::
|
| -
|
| - > executed
|
| - ! missing (not executed)
|
| - - excluded
|
| -
|
| -For example::
|
| -
|
| - # A simple function, never called with x==1
|
| -
|
| - > def h(x):
|
| - """Silly function."""
|
| - - if 0: #pragma: no cover
|
| - - pass
|
| - > if x == 1:
|
| - ! a = 1
|
| - > else:
|
| - > a = 2
|
| -
|
| -Other common reporting options are described above in :ref:`cmd_reporting`.
|
| -
|
| -
|
| -.. _cmd_xml:
|
| -
|
| -XML reporting
|
| --------------
|
| -
|
| -The **xml** command writes coverage data to a "coverage.xml" file in a format
|
| -compatible with `Cobertura`_.
|
| -
|
| -.. _Cobertura: http://cobertura.sourceforge.net
|
| -
|
| -You can specify the name of the output file with the ``-o`` switch.
|
| -
|
| -Other common reporting options are described above in :ref:`cmd_reporting`.
|
| -
|
| -
|
| -.. _cmd_debug:
|
| -
|
| -Diagnostics
|
| ------------
|
| -
|
| -The **debug** command shows internal information to help diagnose problems.
|
| -If you are reporting a bug about coverage.py, including the output of this
|
| -command can often help::
|
| -
|
| - $ coverage debug sys > please_attach_to_bug_report.txt
|
| -
|
| -Two types of information are available: ``sys`` to show system configuration,
|
| -and ``data`` to show a summary of the collected coverage data.
|
|
|