Skip to main content

Distribute tests to cloud machines without fuss

Project description

pytest-cloudist

pytest-cloudist is a pytest plugin to that distributes your tests to AWS EC2 machines with a minimum of fuss. It is a thin wrapper around Meadowrun, which does the heavy lifting of starting EC2 instances and synchronizing environment and code.

Installation

Simply pip install alongside pytest:

python -m pip install pytest-cloudist

That makes the following command line arguments on pytest available:

Distributed testing in the cloud using Meadowrun:
  --cloudist={test,file,no}
                        Set mode for distributing tests to workers.
                        test: send each test to a worker separately.
                        file: send each test file to a worker separately.
                        (default) no: run tests inprocess, don't distribute.
  --cd-tasks-per-worker-target=tasks_per_worker_target
                        The number of tasks to target per worker. This number determines whether individual tests or files are grouped and sent as a chunk to the test worker. Chunking is normally more efficient, but may affect load balancing and worsen the effect of stragglers.
  --cd-num-workers=num_workers
                        Number of workers to use for distributed testing.
  --cd-cpu-per-worker=logical_cpu_per_worker
                        The number of logical CPUs needed per worker.
  --cd-memory-per-worker=memory_gb_per_worker
                        The amount of memory (in GiB) needed per worker.
  --cd-interrupt-prob=INTERRUPTION_PROBABILITY_THRESHOLD
                        The estimated probability that spot instances are interrupted by AWS. Set to 0 for on-demand instances, which will be up to 10x more expensive.
  --cd-extra-files=EXTRA_FILES
                        Extra files to copy as to the remote machines, if needed. .py files on sys.path are copied automatically.
  --cd-init-command=INIT_COMMAND
                        Initialization command to run once per worker

Usage

By default, pytest-cloudist is not activated, i.e. your tests run locally as normal. To enable pytest-cloudist, pass either --cloudist test or --cloudist file with any other options.

Credits

The code and approach of pytest-cloudist, in terms of pytest integration, are heavily based on the code for pytest-xdist, and as a result it is also licensed as MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-cloudist-0.1.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

pytest_cloudist-0.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file pytest-cloudist-0.1.0.tar.gz.

File metadata

  • Download URL: pytest-cloudist-0.1.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.8.10 Linux/5.10.102.1-microsoft-standard-WSL2

File hashes

Hashes for pytest-cloudist-0.1.0.tar.gz
Algorithm Hash digest
SHA256 efd00cd09ca39fcbf14dd3eb07ab04d3ac0d58d3924dfe1da373bc14443a3371
MD5 905d99b8334e93ee700313c2416fc6ca
BLAKE2b-256 bda8e108d63221c16a50143baa93edffd43186e78f1d45292ac7449233fc74ed

See more details on using hashes here.

File details

Details for the file pytest_cloudist-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pytest_cloudist-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.0 CPython/3.8.10 Linux/5.10.102.1-microsoft-standard-WSL2

File hashes

Hashes for pytest_cloudist-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a65ca170434f5e3f4fb1b6b747058321cee1d087a381c0b2e162c6644d9a6aa3
MD5 0f6a091bcfa6f9edc5552772801e84ae
BLAKE2b-256 afbaaa92f169d40553aa8fd5ae56e1bbf6c2b82effe1b033a3aa66324e502c4f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page