%global _empty_manifest_terminate_build 0 Name: python-pytest-shard Version: 0.1.2 Release: 1 Summary: please add a summary manually as the author left a blank one License: MIT URL: https://github.com/AdamGleave/pytest-shard Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c6/ca/3efa6f3b84dab83220db45997e785be726684c2c2c4267bffb7d80101c7f/pytest-shard-0.1.2.tar.gz BuildArch: noarch Requires: python3-pytest %description [![CircleCI](https://circleci.com/gh/AdamGleave/pytest-shard.svg?style=svg)](https://circleci.com/gh/AdamGleave/pytest-shard) [![PyPI version](https://badge.fury.io/py/pytest-shard.svg)](https://badge.fury.io/py/pytest-shard) # pytest-shard Shards tests based on a hash of their test name enabling easy parallelism across machines, suitable for a wide variety of continuous integration services. Tests are split at the finest level of granularity, individual test cases, enabling parallelism even if all of your tests are in a single file (or even single parameterized test method). ## Features `pytest-shard` aims for simplicity. When installed, simply run: ``` $ pytest --shard-id=I --num-shards=N ``` where `I` is the index of this shard and `N` the total number of shards. For example, to split tests across two machines: ``` # On machine 1: $ pytest --shard-id=0 --num-shards=2 # On machine 2: $ pytest --shard-id=1 --num-shards=2 ``` The intended use case is for continuous integration services that allow you to run jobs in parallel. For CircleCI, enable [parallelism](https://circleci.com/docs/2.0/parallelism-faster-jobs/) and then use: ``` pytest --shard-id=${CIRCLE_NODE_INDEX} --num-shards=${CIRCLE_NODE_TOTAL} ``` On Travis, you must define the environment variables explicitly, but can use a [similar approach](https://docs.travis-ci.com/user/speeding-up-the-build/). ## Alternatives [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) allows you to parallelize tests across cores on a single machine, and can also schedule tests on a remote machine. I use `pytest-shard` to split tests across CI workers, and `pytest-xdist` to parallelize across CPU cores within each worker. `pytest-shard` does not take into account the run time of tests, which can lead to suboptimal allocations. [pytest-circleci-parallelized](https://github.com/ryanwilsonperkin/pytest-circleci-parallelized) uses test run time, but can only split at the granularity of classes, and is specific to CircleCI. Please open a PR if there are other promising alternatives that I have overlooked. ## Installation You can install `pytest-shard` via `pip`: ``` $ pip install pytest-shard ``` ## Contributions Contributions are welcome. Test may be run using `tox`. ## License This software is MIT licensed. %package -n python3-pytest-shard Summary: please add a summary manually as the author left a blank one Provides: python-pytest-shard BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pytest-shard [![CircleCI](https://circleci.com/gh/AdamGleave/pytest-shard.svg?style=svg)](https://circleci.com/gh/AdamGleave/pytest-shard) [![PyPI version](https://badge.fury.io/py/pytest-shard.svg)](https://badge.fury.io/py/pytest-shard) # pytest-shard Shards tests based on a hash of their test name enabling easy parallelism across machines, suitable for a wide variety of continuous integration services. Tests are split at the finest level of granularity, individual test cases, enabling parallelism even if all of your tests are in a single file (or even single parameterized test method). ## Features `pytest-shard` aims for simplicity. When installed, simply run: ``` $ pytest --shard-id=I --num-shards=N ``` where `I` is the index of this shard and `N` the total number of shards. For example, to split tests across two machines: ``` # On machine 1: $ pytest --shard-id=0 --num-shards=2 # On machine 2: $ pytest --shard-id=1 --num-shards=2 ``` The intended use case is for continuous integration services that allow you to run jobs in parallel. For CircleCI, enable [parallelism](https://circleci.com/docs/2.0/parallelism-faster-jobs/) and then use: ``` pytest --shard-id=${CIRCLE_NODE_INDEX} --num-shards=${CIRCLE_NODE_TOTAL} ``` On Travis, you must define the environment variables explicitly, but can use a [similar approach](https://docs.travis-ci.com/user/speeding-up-the-build/). ## Alternatives [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) allows you to parallelize tests across cores on a single machine, and can also schedule tests on a remote machine. I use `pytest-shard` to split tests across CI workers, and `pytest-xdist` to parallelize across CPU cores within each worker. `pytest-shard` does not take into account the run time of tests, which can lead to suboptimal allocations. [pytest-circleci-parallelized](https://github.com/ryanwilsonperkin/pytest-circleci-parallelized) uses test run time, but can only split at the granularity of classes, and is specific to CircleCI. Please open a PR if there are other promising alternatives that I have overlooked. ## Installation You can install `pytest-shard` via `pip`: ``` $ pip install pytest-shard ``` ## Contributions Contributions are welcome. Test may be run using `tox`. ## License This software is MIT licensed. %package help Summary: Development documents and examples for pytest-shard Provides: python3-pytest-shard-doc %description help [![CircleCI](https://circleci.com/gh/AdamGleave/pytest-shard.svg?style=svg)](https://circleci.com/gh/AdamGleave/pytest-shard) [![PyPI version](https://badge.fury.io/py/pytest-shard.svg)](https://badge.fury.io/py/pytest-shard) # pytest-shard Shards tests based on a hash of their test name enabling easy parallelism across machines, suitable for a wide variety of continuous integration services. Tests are split at the finest level of granularity, individual test cases, enabling parallelism even if all of your tests are in a single file (or even single parameterized test method). ## Features `pytest-shard` aims for simplicity. When installed, simply run: ``` $ pytest --shard-id=I --num-shards=N ``` where `I` is the index of this shard and `N` the total number of shards. For example, to split tests across two machines: ``` # On machine 1: $ pytest --shard-id=0 --num-shards=2 # On machine 2: $ pytest --shard-id=1 --num-shards=2 ``` The intended use case is for continuous integration services that allow you to run jobs in parallel. For CircleCI, enable [parallelism](https://circleci.com/docs/2.0/parallelism-faster-jobs/) and then use: ``` pytest --shard-id=${CIRCLE_NODE_INDEX} --num-shards=${CIRCLE_NODE_TOTAL} ``` On Travis, you must define the environment variables explicitly, but can use a [similar approach](https://docs.travis-ci.com/user/speeding-up-the-build/). ## Alternatives [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) allows you to parallelize tests across cores on a single machine, and can also schedule tests on a remote machine. I use `pytest-shard` to split tests across CI workers, and `pytest-xdist` to parallelize across CPU cores within each worker. `pytest-shard` does not take into account the run time of tests, which can lead to suboptimal allocations. [pytest-circleci-parallelized](https://github.com/ryanwilsonperkin/pytest-circleci-parallelized) uses test run time, but can only split at the granularity of classes, and is specific to CircleCI. Please open a PR if there are other promising alternatives that I have overlooked. ## Installation You can install `pytest-shard` via `pip`: ``` $ pip install pytest-shard ``` ## Contributions Contributions are welcome. Test may be run using `tox`. ## License This software is MIT licensed. %prep %autosetup -n pytest-shard-0.1.2 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pytest-shard -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 0.1.2-1 - Package Spec generated