Commits

holger krekel committed 90fffd3

recreated plugin docs

Comments (0)

Files changed (9)

doc/announce/release-1.3.4.txt

 py.test/pylib 1.3.4: fixes and new native traceback option
 ===========================================================================
 
-pylib/py.test 1.3.4 is a minor bugfix release featuring small fixes.  See
-below and the changelog_ for full history.
+pylib/py.test 1.3.4 is a minor maintenance release mostly containing bug fixes
+and a new "--tb=native" traceback option to show "normal" Python standard
+tracebacks instead of the py.test enhanced tracebacks.  See below for more
+change info and http://pytest.org for more general information on features
+and configuration of the testing tool.
 
-Particular thanks to the issue reporters and Ronny Pfannschmidt for general help.
+Thanks to the issue reporters and generally to Ronny Pfannschmidt for help.
 
-have fun,
+cheers,
 holger krekel
 
-.. _changelog: ../changelog.html
-
 Changes between 1.3.3 and 1.3.4
 ==================================================
 

doc/test/plugin/capturelog.txt

 Installation
 ------------
 
-You can install the `pytest-capturelog pypi`_ package
+You can install the `pytest-capturelog pypi`_ package 
 with pip::
 
-    pip install pytest-capturelog
+    pip install pytest-capturelog 
 
 or with easy install::
 

doc/test/plugin/cov.txt

 .. contents::
   :local:
 
-This plugin produces coverage reports using the coverage package.  It
-supports centralised testing and distributed testing in both load and
-each modes.
+This plugin produces coverage reports.  It supports centralised testing and distributed testing in
+both load and each modes.  It also supports coverage of subprocesses.
 
-All features offered by the coverage package should be available,
-either through this plugin or through coverage's own config file.
+All features offered by the coverage package should be available, either through pytest-cov or
+through coverage's config file.
 
 
 Installation
 ------------
 
-The `pytest-cov pypi`_ package may be installed / uninstalled with pip::
+The `pytest-cov`_ package may be installed with pip or easy_install::
 
     pip install pytest-cov
+    easy_install pytest-cov
+
+.. _`pytest-cov`: http://pypi.python.org/pypi/pytest-cov/
+
+
+Uninstallation
+--------------
+
+Uninstalling packages is supported by pip::
+
     pip uninstall pytest-cov
 
-Alternatively easy_install can be used::
+However easy_install does not provide an uninstall facility.
 
-    easy_install pytest-cov
+.. IMPORTANT::
 
-.. _`pytest-cov pypi`: http://pypi.python.org/pypi/pytest-cov/
+    Ensure that you manually delete the init_cov_core.pth file in your site-packages directory.
+
+    This file starts coverage collection of subprocesses if appropriate during site initialisation
+    at python startup.
 
 
 Usage
 Centralised Testing
 ~~~~~~~~~~~~~~~~~~~
 
+Centralised testing will report on the combined coverage of the main process and all of it's
+subprocesses.
+
 Running centralised testing::
 
     py.test --cov myproj tests/
 Shows a terminal report::
 
     -------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
-    Name                 Stmts   Exec  Cover   Missing
-    --------------------------------------------------
-    myproj/__init__          2      2   100%
-    myproj/myproj          257    244    94%   24-26, 99, 149, 233-236, 297-298, 369-370
-    myproj/feature4286      94     87    92%   183-188, 197
-    --------------------------------------------------
-    TOTAL                  353    333    94%
+    Name                 Stmts   Miss  Cover
+    ----------------------------------------
+    myproj/__init__          2      0   100%
+    myproj/myproj          257     13    94%
+    myproj/feature4286      94      7    92%
+    ----------------------------------------
+    TOTAL                  353     20    94%
 
 
-Distributed Testing
-~~~~~~~~~~~~~~~~~~~
+Distributed Testing: Load
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Distributed testing with dist mode set to load::
+Distributed testing with dist mode set to load will report on the combined coverage of all slaves.
+The slaves may be spread out over any number of hosts and each slave may be located anywhere on the
+file system.  Each slave will have it's subprocesses measured.
+
+Running distributed testing with dist mode set to load::
 
     py.test --cov myproj -n 2 tests/
 
-The results from the slaves will be combined like so::
+Shows a terminal report::
 
     -------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
-    Name                 Stmts   Exec  Cover   Missing
-    --------------------------------------------------
-    myproj/__init__          2      2   100%
-    myproj/myproj          257    244    94%   24-26, 99, 149, 233-236, 297-298, 369-370
-    myproj/feature4286      94     87    92%   183-188, 197
-    --------------------------------------------------
-    TOTAL                  353    333    94%
+    Name                 Stmts   Miss  Cover
+    ----------------------------------------
+    myproj/__init__          2      0   100%
+    myproj/myproj          257     13    94%
+    myproj/feature4286      94      7    92%
+    ----------------------------------------
+    TOTAL                  353     20    94%
 
 
-Distributed testing in each mode::
+Again but spread over different hosts and different directories::
 
-    py.test --cov myproj --dist=each
-            --tx=popen//python=/usr/local/python265/bin/python
-            --tx=popen//python=/usr/local/python27b1/bin/python
+    py.test --cov myproj --dist load
+            --tx ssh=memedough@host1//chdir=testenv1
+            --tx ssh=memedough@host2//chdir=/tmp/testenv2//python=/tmp/env1/bin/python
+            --rsyncdir myproj --rsyncdir tests --rsync examples
             tests/
 
-Will produce a report for each slave::
+Shows a terminal report::
 
-    -------------------- coverage: platform linux2, python 2.6.5-final-0 ---------------------
-    Name                 Stmts   Exec  Cover   Missing
-    --------------------------------------------------
-    myproj/__init__          2      2   100%
-    myproj/myproj          257    244    94%   24-26, 99, 149, 233-236, 297-298, 369-370
-    myproj/feature4286      94     87    92%   183-188, 197
-    --------------------------------------------------
-    TOTAL                  353    333    94%
-    --------------------- coverage: platform linux2, python 2.7.0-beta-1 ---------------------
-    Name                 Stmts   Exec  Cover   Missing
-    --------------------------------------------------
-    myproj/__init__          2      2   100%
-    myproj/myproj          257    244    94%   24-26, 99, 149, 233-236, 297-298, 369-370
-    myproj/feature4286      94     87    92%   183-188, 197
-    --------------------------------------------------
-    TOTAL                  353    333    94%
+    -------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
+    Name                 Stmts   Miss  Cover
+    ----------------------------------------
+    myproj/__init__          2      0   100%
+    myproj/myproj          257     13    94%
+    myproj/feature4286      94      7    92%
+    ----------------------------------------
+    TOTAL                  353     20    94%
 
 
-Distributed testing in each mode can also produce a single combined
-report.  This is useful to get coverage information spanning things
-such as all python versions::
+Distributed Testing: Each
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    py.test --cov myproj --cov-combine-each --dist=each
-            --tx=popen//python=/usr/local/python265/bin/python
-            --tx=popen//python=/usr/local/python27b1/bin/python
+Distributed testing with dist mode set to each will report on the combined coverage of all slaves.
+Since each slave is running all tests this allows generating a combined coverage report for multiple
+environments.
+
+Running distributed testing with dist mode set to each::
+
+    py.test --cov myproj --dist each
+            --tx popen//chdir=/tmp/testenv3//python=/usr/local/python27/bin/python
+            --tx ssh=memedough@host2//chdir=/tmp/testenv4//python=/tmp/env2/bin/python
+            --rsyncdir myproj --rsyncdir tests --rsync examples
             tests/
 
-Which looks like::
+Shows a terminal report::
 
     ---------------------------------------- coverage ----------------------------------------
                               platform linux2, python 2.6.5-final-0
-                               platform linux2, python 2.7.0-beta-1
-    Name                 Stmts   Exec  Cover   Missing
-    --------------------------------------------------
-    myproj/__init__          2      2   100%
-    myproj/myproj          257    244    94%   24-26, 99, 149, 233-236, 297-298, 369-370
-    myproj/feature4286      94     87    92%   183-188, 197
-    --------------------------------------------------
-    TOTAL                  353    333    94%
+                              platform linux2, python 2.7.0-final-0
+    Name                 Stmts   Miss  Cover
+    ----------------------------------------
+    myproj/__init__          2      0   100%
+    myproj/myproj          257     13    94%
+    myproj/feature4286      94      7    92%
+    ----------------------------------------
+    TOTAL                  353     20    94%
 
 
 Reporting
 ---------
 
-By default a terminal report is output.  This report can be disabled
-if desired, such as when results are going to a continuous integration
-system and the terminal output won't be seen.
+It is possible to generate any combination of the reports for a single test run.
 
-In addition and without rerunning tests it is possible to generate
-annotated source code, a html report and an xml report.
+The available reports are terminal (with or without missing line numbers shown), HTML, XML and
+annotated source code.
 
-The directories for annotated source code and html reports can be
-specified as can the file name for the xml report.
+The terminal report without line numbers (default)::
 
-Since testing often takes a non trivial amount of time at the end of
-testing any / all of the reports may be generated.
+    py.test --cov-report term --cov myproj tests/
+
+    -------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
+    Name                 Stmts   Miss  Cover
+    ----------------------------------------
+    myproj/__init__          2      0   100%
+    myproj/myproj          257     13    94%
+    myproj/feature4286      94      7    92%
+    ----------------------------------------
+    TOTAL                  353     20    94%
+
+
+The terminal report with line numbers::
+
+    py.test --cov-report term-missing --cov myproj tests/
+
+    -------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
+    Name                 Stmts   Miss  Cover   Missing
+    --------------------------------------------------
+    myproj/__init__          2      0   100%
+    myproj/myproj          257     13    94%   24-26, 99, 149, 233-236, 297-298, 369-370
+    myproj/feature4286      94      7    92%   183-188, 197
+    --------------------------------------------------
+    TOTAL                  353     20    94%
+
+
+The remaining three reports output to files without showing anything on the terminal (useful for
+when the output is going to a continuous integration server)::
+
+    py.test --cov-report html --cov-report xml --cov-report annotate --cov myproj tests/
 
 
 Coverage Data File
 ------------------
 
-During testing there may be many data files with coverage data.  These
-will have unique suffixes and will be combined at the end of testing.
+The data file is erased at the beginning of testing to ensure clean data for each test run.
 
-Upon completion, for --dist=load (and also for --dist=each when the
---cov-combine-each option is used) there will only be one data file.
-
-For --dist=each there may be many data files where each one will have
-the platform / python version info appended to the name.
-
-These data files are left at the end of testing so that it is possible
-to use normal coverage tools to examine them.
-
-At the beginning of testing any data files that are about to be used
-will first be erased so ensure the data is clean for each test run.
-
-It is possible to set the name of the data file.  If needed the
-platform / python version will be appended automatically to this name.
-
-
-Coverage Config File
---------------------
-
-Coverage by default will read its own config file.  An alternative
-file name may be specified or reading config can be disabled entirely.
-
-Care has been taken to ensure that the coverage env vars and config
-file options work the same under this plugin as they do under coverage
-itself.
-
-Since options may be specified in different ways the order of
-precedence between pytest-cov and coverage from highest to lowest is:
-
-1. pytest command line
-2. pytest env var
-3. pytest conftest
-4. coverage env var
-5. coverage config file
-6. coverage default
+The data file is left at the end of testing so that it is possible to use normal coverage tools to
+examine it.
 
 
 Limitations
 -----------
 
-For distributed testing the slaves must have the pytest-cov package
-installed.  This is needed since the plugin must be registered through
-setuptools / distribute for pytest to start the plugin on the slave.
+For distributed testing the slaves must have the pytest-cov package installed.  This is needed since
+the plugin must be registered through setuptools / distribute for pytest to start the plugin on the
+slave.
+
+For subprocess measurement environment variables must make it from the main process to the
+subprocess.  The python used by the subprocess must have pytest-cov installed.  The subprocess must
+do normal site initialisation so that the environment variables can be detected and coverage
+started.
 
 
 Acknowledgements
 
 Holger Krekel for pytest with its distributed testing support.
 
-Ned Batchelder for coverage and its ability to combine the coverage
-results of parallel runs.
+Ned Batchelder for coverage and its ability to combine the coverage results of parallel runs.
 
-Whilst this plugin has been built fresh from the ground up to support
-distributed testing it has been influenced by the work done on
-pytest-coverage (Ross Lawley, James Mills, Holger Krekel) and
-nose-cover (Jason Pellerin) which are other coverage plugins for
-pytest and nose respectively.
+Whilst this plugin has been built fresh from the ground up to support distributed testing it has
+been influenced by the work done on pytest-coverage (Ross Lawley, James Mills, Holger Krekel) and
+nose-cover (Jason Pellerin) which are other coverage plugins for pytest and nose respectively.
 
 No doubt others have contributed to these tools as well.
 
 --------------------
 
 
-``--cov-on``
-    enable coverage, only needed if not specifying any --cov options
-``--cov=package``
-    collect coverage for the specified package (multi-allowed)
-``--cov-no-terminal``
-    disable printing a report on the terminal
-``--cov-annotate``
-    generate an annotated source code report
-``--cov-html``
-    generate a html report
-``--cov-xml``
-    generate an xml report
-``--cov-annotate-dir=dir``
-    directory for the annotate report, default: %default
-``--cov-html-dir=dir``
-    directory for the html report, default: coverage_html
-``--cov-xml-file=path``
-    file for the xml report, default: coverage.xml
-``--cov-data-file=path``
-    file containing coverage data, default: .coverage
-``--cov-combine-each``
-    for dist=each mode produce a single combined report
-``--cov-branch``
-    enable branch coverage
-``--cov-pylib``
-    enable python library coverage
-``--cov-timid``
-    enable slower and simpler tracing
-``--cov-no-missing-lines``
-    disable showing missing lines, only relevant to the terminal report
-``--cov-no-missing-files``
-    disable showing message about missing source files
-``--cov-omit=prefix1,prefix2,...``
-    ignore files with these prefixes
-``--cov-no-config``
-    disable coverage reading its config file
-``--cov-config-file=path``
-    config file for coverage, default: %default
+``--cov=path``
+    measure coverage for filesystem path (multi-allowed)
+``--cov-report=type``
+    type of report to generate: term, term-missing, annotate, html, xml (multi-allowed)
+``--cov-config=path``
+    config file for coverage, default: .coveragerc
 
 .. include:: links.txt

doc/test/plugin/coverage.txt

 .. contents::
   :local:
 
-Original code by Ross Lawley.
+Note: Original code by Ross Lawley. 
 
-Requires Ned Batchelder's excellent coverage:
-http://nedbatchelder.com/code/coverage/
+Install
+--------------
+
+Use pip to (un)install::
+
+    pip install pytest-coverage 
+    pip uninstall pytest-coverage 
+
+or alternatively use easy_install to install::
+
+    easy_install pytest-coverage 
+
+
+Usage 
+-------------
+
+To get full test coverage reports for a particular package type::
+
+    py.test --cover-report=report
 
 command line options
 --------------------
     html: Directory for html output.
                     report: Output a text report.
                     annotate: Annotate your source code for which lines were executed and which were not.
+                    xml: Output an xml report compatible with the cobertura plugin for hudson.
 ``--cover-directory=DIRECTORY``
     Directory for the reports (html / annotate results) defaults to ./coverage
+``--cover-xml-file=XML_FILE``
+    File for the xml report defaults to ./coverage.xml
 ``--cover-show-missing``
     Show missing files
 ``--cover-ignore-errors=IGNORE_ERRORS``

doc/test/plugin/figleaf.txt

 .. contents::
   :local:
 
+Install
+---------------
+
+To install the plugin issue::
+
+    easy_install pytest-figleaf  # or
+    pip install pytest-figleaf   
+
+and if you are using pip you can also uninstall::
+
+    pip uninstall pytest-figleaf
+
+
 Usage
 ---------------
 
-after pip or easy_install mediated installation of ``pytest-figleaf`` you can type::
+After installation you can simply type::
 
     py.test --figleaf [...]
 
 to enable figleaf coverage in your test run.  A default ".figleaf" data file
-and "html" directory will be created.  You can use ``--fig-data``
-and ``fig-html`` to modify the paths.
+and "html" directory will be created.  You can use command line options
+to control where data and html files are created.
 
 command line options
 --------------------

doc/test/plugin/helpconfig.txt

 ``--traceconfig``
     trace considerations of conftest.py files.
 ``--nomagic``
-    don't reinterpret asserts, no traceback cutting.
+    don't reinterpret asserts, no traceback cutting. 
 ``--debug``
     generate and show internal debugging information.
 ``--help-config``

doc/test/plugin/hookspec.txt

     """
     hook specifications for py.test plugins
     """
-
+    
     # -------------------------------------------------------------------------
     # Command line and configuration
     # -------------------------------------------------------------------------
-
+    
     def pytest_namespace():
         "return dict of name->object which will get stored at py.test. namespace"
-
+    
     def pytest_addoption(parser):
         "add optparse-style options via parser.addoption."
-
+    
     def pytest_addhooks(pluginmanager):
         "add hooks via pluginmanager.registerhooks(module)"
-
+    
     def pytest_configure(config):
         """ called after command line options have been parsed.
             and all plugins and initial conftest files been loaded.
         """
-
+    
     def pytest_unconfigure(config):
         """ called before test process is exited.  """
-
+    
     # -------------------------------------------------------------------------
     # collection hooks
     # -------------------------------------------------------------------------
-
+    
     def pytest_ignore_collect(path, config):
         """ return true value to prevent considering this path for collection.
         This hook is consulted for all files and directories prior to considering
         collection hooks.
         """
     pytest_ignore_collect.firstresult = True
-
+    
     def pytest_collect_directory(path, parent):
         """ return Collection node or None for the given path. """
     pytest_collect_directory.firstresult = True
-
+    
     def pytest_collect_file(path, parent):
         """ return Collection node or None for the given path. """
-
+    
     def pytest_collectstart(collector):
         """ collector starts collecting. """
-
+    
     def pytest_collectreport(report):
         """ collector finished collecting. """
-
+    
     def pytest_deselected(items):
         """ called for test items deselected by keyword. """
-
+    
     def pytest_make_collect_report(collector):
         """ perform a collection and return a collection. """
     pytest_make_collect_report.firstresult = True
-
+    
     # XXX rename to item_collected()?  meaning in distribution context?
     def pytest_itemstart(item, node=None):
         """ test item gets collected. """
-
+    
     # -------------------------------------------------------------------------
     # Python test function related hooks
     # -------------------------------------------------------------------------
-
+    
     def pytest_pycollect_makemodule(path, parent):
         """ return a Module collector or None for the given path.
         This hook will be called for each matching test module path.
         create test modules for files that do not match as a test module.
         """
     pytest_pycollect_makemodule.firstresult = True
-
+    
     def pytest_pycollect_makeitem(collector, name, obj):
         """ return custom item/collector for a python object in a module, or None.  """
     pytest_pycollect_makeitem.firstresult = True
-
+    
     def pytest_pyfunc_call(pyfuncitem):
         """ call underlying test function. """
     pytest_pyfunc_call.firstresult = True
-
+    
     def pytest_generate_tests(metafunc):
         """ generate (multiple) parametrized calls to a test function."""
-
+    
     # -------------------------------------------------------------------------
     # generic runtest related hooks
     # -------------------------------------------------------------------------
-
+    
     def pytest_runtest_protocol(item):
         """ implement fixture, run and report about the given test item. """
     pytest_runtest_protocol.firstresult = True
-
+    
     def pytest_runtest_setup(item):
         """ called before pytest_runtest_call(). """
-
+    
     def pytest_runtest_call(item):
         """ execute test item. """
-
+    
     def pytest_runtest_teardown(item):
         """ called after pytest_runtest_call(). """
-
+    
     def pytest_runtest_makereport(item, call):
         """ make a test report for the given item and call outcome. """
     pytest_runtest_makereport.firstresult = True
-
+    
     def pytest_runtest_logreport(report):
         """ process item test report. """
-
+    
     # special handling for final teardown - somewhat internal for now
     def pytest__teardown_final(session):
         """ called before test session finishes. """
     pytest__teardown_final.firstresult = True
-
+    
     def pytest__teardown_final_logerror(report):
         """ called if runtest_teardown_final failed. """
-
+    
     # -------------------------------------------------------------------------
     # test session related hooks
     # -------------------------------------------------------------------------
-
+    
     def pytest_sessionstart(session):
         """ before session.main() is called. """
-
+    
     def pytest_sessionfinish(session, exitstatus):
         """ whole test run finishes. """
-
+    
     # -------------------------------------------------------------------------
     # hooks for influencing reporting (invoked from pytest_terminal)
     # -------------------------------------------------------------------------
-
+    
     def pytest_report_header(config):
         """ return a string to be displayed as header info for terminal reporting."""
-
+    
     def pytest_report_teststatus(report):
         """ return result-category, shortletter and verbose word for reporting."""
     pytest_report_teststatus.firstresult = True
-
+    
     def pytest_terminal_summary(terminalreporter):
         """ add additional section in terminal summary reporting. """
-
+    
     def pytest_report_iteminfo(item):
         """ return (fspath, lineno, name) for the item.
             the information is used for result display and to sort tests
         """
     pytest_report_iteminfo.firstresult = True
-
+    
     # -------------------------------------------------------------------------
     # doctest hooks
     # -------------------------------------------------------------------------
-
+    
     def pytest_doctest_prepare_content(content):
         """ return processed content for a given doctest"""
     pytest_doctest_prepare_content.firstresult = True
-
-
+    
+    
     # -------------------------------------------------------------------------
     # error handling and internal debugging hooks
     # -------------------------------------------------------------------------
-
+    
     def pytest_plugin_registered(plugin, manager):
         """ a new py lib plugin got registered. """
-
+    
     def pytest_plugin_unregistered(plugin):
         """ a py lib plugin got unregistered. """
-
+    
     def pytest_internalerror(excrepr):
         """ called for internal errors. """
-
+    
     def pytest_keyboard_interrupt(excinfo):
         """ called for keyboard interrupt. """
-
+    
     def pytest_trace(category, msg):
         """ called for debug info. """
 
 
 .. sourcecode:: python
 
-
+    
     def pytest_gwmanage_newgateway(gateway, platinfo):
         """ called on new raw gateway creation. """
-
+    
     def pytest_gwmanage_rsyncstart(source, gateways):
         """ called before rsyncing a directory to remote gateways takes place. """
-
+    
     def pytest_gwmanage_rsyncfinish(source, gateways):
         """ called after rsyncing a directory to remote gateways takes place. """
-
+    
     def pytest_configure_node(node):
         """ configure node information before it gets instantiated. """
-
+    
     def pytest_testnodeready(node):
         """ Test Node is ready to operate. """
-
+    
     def pytest_testnodedown(node, error):
         """ Test Node is down. """
-
+    
     def pytest_rescheduleitems(items):
         """ reschedule Items from a node that went down. """
 

doc/test/plugin/links.txt

 .. _`helpconfig`: helpconfig.html
-.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_recwarn.py
+.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_recwarn.py
 .. _`unittest`: unittest.html
-.. _`pytest_monkeypatch.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_monkeypatch.py
-.. _`pytest_genscript.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_genscript.py
+.. _`pytest_monkeypatch.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_monkeypatch.py
+.. _`pytest_genscript.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_genscript.py
 .. _`pastebin`: pastebin.html
 .. _`skipping`: skipping.html
 .. _`genscript`: genscript.html
 .. _`plugins`: index.html
 .. _`mark`: mark.html
 .. _`tmpdir`: tmpdir.html
-.. _`pytest_doctest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_doctest.py
+.. _`pytest_doctest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_doctest.py
 .. _`capture`: capture.html
-.. _`pytest_nose.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_nose.py
-.. _`pytest_restdoc.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_restdoc.py
+.. _`pytest_nose.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_nose.py
+.. _`pytest_restdoc.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_restdoc.py
 .. _`restdoc`: restdoc.html
 .. _`xdist`: xdist.html
-.. _`pytest_pastebin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_pastebin.py
-.. _`pytest_tmpdir.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_tmpdir.py
+.. _`pytest_pastebin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_pastebin.py
+.. _`pytest_tmpdir.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_tmpdir.py
 .. _`terminal`: terminal.html
-.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_hooklog.py
+.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_hooklog.py
 .. _`capturelog`: capturelog.html
 .. _`junitxml`: junitxml.html
-.. _`pytest_skipping.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_skipping.py
+.. _`pytest_skipping.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_skipping.py
 .. _`checkout the py.test development version`: ../../install.html#checkout
-.. _`pytest_helpconfig.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_helpconfig.py
+.. _`pytest_helpconfig.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_helpconfig.py
 .. _`oejskit`: oejskit.html
 .. _`doctest`: doctest.html
-.. _`pytest_mark.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_mark.py
+.. _`pytest_mark.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_mark.py
 .. _`get in contact`: ../../contact.html
-.. _`pytest_capture.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_capture.py
+.. _`pytest_capture.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_capture.py
 .. _`figleaf`: figleaf.html
 .. _`customize`: ../customize.html
 .. _`hooklog`: hooklog.html
-.. _`pytest_terminal.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_terminal.py
+.. _`pytest_terminal.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_terminal.py
 .. _`recwarn`: recwarn.html
-.. _`pytest_pdb.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_pdb.py
+.. _`pytest_pdb.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_pdb.py
 .. _`monkeypatch`: monkeypatch.html
 .. _`coverage`: coverage.html
 .. _`resultlog`: resultlog.html
 .. _`cov`: cov.html
-.. _`pytest_junitxml.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_junitxml.py
+.. _`pytest_junitxml.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_junitxml.py
 .. _`django`: django.html
-.. _`pytest_unittest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_unittest.py
+.. _`pytest_unittest.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_unittest.py
 .. _`nose`: nose.html
-.. _`pytest_resultlog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.2/py/_plugin/pytest_resultlog.py
+.. _`pytest_resultlog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.3.4/py/_plugin/pytest_resultlog.py
 .. _`pdb`: pdb.html

doc/test/plugin/xdist.txt

     box each test run in a separate process (unix)
 ``--dist=distmode``
     set mode for distributing tests to exec environments.
-
+    
     each: send each test to each available environment.
-
+    
     load: send each test to available environment.
-
+    
     (default) no: run tests inprocess, don't distribute.
 ``--tx=xspec``
     add a test execution environment. some examples: --tx popen//python=python2.5 --tx socket=192.168.1.102:8888 --tx ssh=user@codespeak.net//chdir=testcache