./devel/py-test-xdist, Plugin for distributed testing and loop-on-failing modes

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.6.1, Package name: py312-test-xdist-3.6.1, Maintainer: pkgsrc-users

The pytest-xdist plugin extends py.test with some unique test execution modes:
* test run parallelization: if you have multiple CPUs or hosts you can use
those for a combined test run. This allows to speed up development or to use
special resources of remote machines.
* --boxed: (not available on Windows) run each test in a boxed subprocess to
survive SEGFAULTS or otherwise dying processes
* --looponfail: run your tests repeatedly in a subprocess. After each run
py.test waits until a file in your project changes and then re-runs the
previously failing tests. This is repeated until all tests pass after which
again a full run is performed.
* Multi-Platform coverage: you can specify different Python interpreters or
different platforms and run tests in parallel on all of them.


Required to run:
[devel/py-setuptools] [devel/py-test] [lang/py-six] [devel/py-execnet] [devel/py-test-forked] [lang/python37]

Required to build:
[pkgtools/cwrappers] [devel/py-setuptools_scm]

Master sites:

Filesize: 82.09 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-21 21:37:43 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test-xdist: updated to 3.5.0

pytest-xdist 3.5.0 (2023-11-21)

Features

- ``--dist=loadscope`` now sorts scopes by number of tests to assign largest \ 
scopes early -- in many cases this should improve overall test session running \ 
time, as there is less chance of a large scope being left to be processed near \ 
the end of the session, leaving other workers idle.
   2023-11-16 10:24:03 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test-xdist: updated to 3.4.0

pytest-xdist 3.4.0 (2023-11-11)

Features

- Wait for workers to finish reporting when test run stops early.

  This makes sure that the results of in-progress tests are displayed.
  Previously these reports were being discarded, losing information about the
  test run.

- Added support for Python 3.12.
   2023-10-28 21:57:26 by Thomas Klausner | Files touched by this commit (516) | Package updated
Log message:
python/wheel.mk: simplify a lot, and switch to 'installer' for installation

This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using wheel.mk and bump their PKGREVISIONs.
   2023-05-24 08:53:06 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test-xdist: updated to 3.3.1

pytest-xdist 3.3.1 (2023-05-19)

Bug Fixes
- Avoid remote calls during startup as ``execnet`` by default does not ensure \ 
remote affinity with the
  main thread and might accidentally schedule the pytest worker into a non-main \ 
thread, which breaks numerous frameworks,
  for example ``asyncio``, ``anyio``, ``PyQt/PySide``, etc.

  A more safe correction will require thread affinity in ``execnet``

pytest-xdist 3.3.0 (2023-05-12)

Features
- Improved progress output when collecting nodes to be less verbose.
   2023-03-13 09:45:46 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test-xdist: updated to 3.2.1

pytest-xdist 3.2.1
Fixed hang in ``worksteal`` scheduler.
   2023-02-20 19:00:36 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-test-xdist: updated to 3.2.0

pytest-xdist 3.2.0 (2023-02-07)

Improved Documentation

Document limitations for debugging due to standard I/O of workers not being \ 
forwarded. Also, mention remote debugging as a possible workaround.

Features

Users can now configure load scheduling precision using --maxschedchunk command \ 
line option.
New worksteal scheduler, based on the idea of work stealing. It's similar to \ 
load scheduler, but it should handle tests with significantly differing duration \ 
better, and, at the same time, it should provide similar or better reuse of \ 
fixtures.

Trivial Changes

Make the tests pass even when $PYTEST_XDIST_AUTO_NUM_WORKERS is set.
   2022-12-12 11:09:32 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-test-xdist: updated to 3.1.0

pytest-xdist 3.1.0 (2022-12-01)
===============================

Features
--------
- Users can now set a default distribution mode in their configuration file:

  .. code-block:: ini

      [pytest]
      addopts = --dist loadscope

- Python 3.11 is now officially supported.

Removals
--------
- Python 3.6 is no longer supported.
   2022-10-31 13:32:31 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-test-xdist: updated to 3.0.2

pytest-xdist 3.0.2 (2022-10-25)
===============================

Bug Fixes
---------
- Cancel shutdown when a crashed worker is restarted.

Deprecations
------------
- The ``--rsyncdir`` command line argument and ``rsyncdirs`` config variable are \ 
deprecated.
  The rsync feature will be removed in pytest-xdist 4.0.
- The ``--looponfail`` command line argument and ``looponfailroots`` config \ 
variable are deprecated.
  The loop-on-fail feature will be removed in pytest-xdist 4.0.

Improved Documentation
----------------------
- Document the ``pytest_xdist_auto_num_workers`` hook.
- Added known limitations section to documentation.
- Document the ``-n logical`` option.

Features
--------
- The environment variable ``PYTEST_XDIST_AUTO_NUM_WORKERS`` can now be used to
  specify the default for ``-n auto`` and ``-n logical``.
- Partially restore old initial batch distribution algorithm in ``LoadScheduling``.

  pytest orders tests for optimal sequential execution - i. e. avoiding
  unnecessary setup and teardown of fixtures. So executing tests in consecutive
  chunks is important for optimal performance.

  In v1.14, initial test distribution in ``LoadScheduling`` was changed to
  round-robin, optimized for the corner case, when the number of tests is less
  than ``2 * number of nodes``. At the same time, it became worse for all other
  cases.

  For example: if some tests use some "heavy" fixture, and these tests \ 
fit into
  the initial batch, with round-robin distribution the fixture will be created
  ``min(n_tests, n_workers)`` times, no matter how many other tests there are.

  With the old algorithm (before v1.14), if there are enough tests not using
  the fixture, the fixture was created only once.

  So restore the old behavior for typical cases where the number of tests is
  much greater than the number of workers (or, strictly speaking, when there
  are at least 2 tests for every node).

Removals
--------
- The ``--boxed`` command-line option has been removed. If you still need this \ 
functionality, install `pytest-forked \ 
<https://pypi.org/project/pytest-forked>`__ separately.

Trivial Changes
---------------
- The ``py`` dependency has been dropped.
- Replace internal usage of ``py.log`` with a custom solution (but with the same \ 
interface).
- Remove usage of ``py._pydir`` as an rsync candidate.
- Replace internal usages of ``py.path.local`` by ``pathlib.Path``.