Skip to main content

rytest

rytest is a reasonably fast, somewhat Pytest compatible Python test runner.

Note that this is currently under heavy development, and will likely not work for all but the simplest test suites.

Why Another Test Runner?

What's wrong with pytest? Well, nothing per se. It's been a great test runner for many years. But it also tends to be quite slow, especially if you are looking to do things like automatically rerun your tests across a large codebase.

Rytest is an experiment to see if we can get a much faster test runner that is still compatible with the pytest ecosystem. Some day we hope to build on that and provide an evolution of the testing experience for python.

For now though you may be asking, how much faster is this really? Well, we've only built support for test collection so far, but it's substantially faster against a couple of popular Python codebases.

A benchmark comparing test collection in rytest against pytest in the Flask project, showing rytest is approximately twice as fast.

A benchmark comparing test collection in rytest against pytest in the FastAPI project, showing rytest is approximately five times faster.

Roadmap

We are releasing versions of rytest as we complete major feature groups. The following list is a rough roadmap of what we we expect to deliver:

  • ✅ 0.1.0: Test collection. This also offers an incomplete test execution framework.
  • ⬜️ 0.2.0: Fixture Support. This will ensure we have full fixture support, including test paramaterization.
  • ⬜️ 0.3.0: Test Execution. This will ensure we have a full test execution framework.
  • ⬜️ 0.4.0: Test Reporting. This will provide test reporting capabilties including coverage reporting.
  • ⬜️ 0.5.0: Miscleneous. This will include any other features we feel are necessary to make rytest a complete test runner.
  • ⬜️ 1.0.0: Release. This will be the first stable release of rytest, and is expected to be usable for most test suites.

This means that early released may not be suitable for production work, but we hope people can pull it down, try it out, and provide feedback.

The roadmap to 2.0 will focus more on developing an interface unique to rytest, more to come on that!

Usage

The simple version is:

$ rytest tests

This will run tests in any python file in the tests directory that starts with test_.

Development

In order for maturin to build and link against python, you will need to ensure there is a virtualenv available to it:

python3 -m venv .venv

To test against our local test fixtures, run:

cargo run -- tests -v

Running the Test Suite

To run the test suite, run:

cargo test

We make use of the insta crate for snapshot testing. If you need to update snapshots, run:

cargo install cargo-insta
cargo insta review

For more information, check out the documentation.

Contributing

Before contributing code to this repository, recognize that you should run the following to satisfy CI:

cargo fmt
cargo build
cargo clippy
cargo test

These will all be run in CI to validate your code.

Thank You

We wanted to thank the Astral team for providing a great example of how to manage a lot of the scaffold around a Rust/Python project, which has alllowed us to focus on the core of rytest.

Metadata

Release files for rytest 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rytest 0.1.0
File Size Uploaded Provenance Actions
rytest-0.1.0.tar.gz 27.1 kB Without provenance Details for rytest-0.1.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for rytest 0.1.0
File Actions
rytest-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for rytest-0.1.0-cp312-cp312-win_amd64.whl
rytest-0.1.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for rytest-0.1.0-cp312-cp312-win32.whl
rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details for rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
rytest-0.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for rytest-0.1.0-cp311-cp311-win_amd64.whl
rytest-0.1.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details for rytest-0.1.0-cp311-cp311-win32.whl
rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details for rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
rytest-0.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for rytest-0.1.0-cp310-cp310-win_amd64.whl
rytest-0.1.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details for rytest-0.1.0-cp310-cp310-win32.whl
rytest-0.1.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for rytest-0.1.0-cp39-cp39-win_amd64.whl
rytest-0.1.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details for rytest-0.1.0-cp39-cp39-win32.whl

Total release size: 18.8 MB

Release files / rytest-0.1.0.tar.gz

Download URL rytest-0.1.0.tar.gz
Size 27.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f25a32f128ed2bb43caf485191369af501a764283a69f2b80863c38122e6ce25
BLAKE2b-256 checksum
How to use checksums
d09a496b5e85433fe881876ac9415de2e3ba27a56198421b1770897dd1c071d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp312-cp312-win_amd64.whl

Download URL rytest-0.1.0-cp312-cp312-win_amd64.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
20b74975d433fc64ae44e235ea7be941947f1a742844edd63b554cff7441b247
BLAKE2b-256 checksum
How to use checksums
99bd125423cf48de452df20f4dc2eb0a5ff5017d4de316183412c83e61b69228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp312-cp312-win32.whl

Download URL rytest-0.1.0-cp312-cp312-win32.whl
Size 1.5 MB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
9a77b0061241bc30e3024b038428686ea260f7bf5635fc181020c8d0c26d8b59
BLAKE2b-256 checksum
How to use checksums
c1632aed07e2f95287c4d15aee83c7df2d1acf57c5c91a38719e872003002dc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4930a8659d1cc10e4a532129202db954ffd1278d4326dfa4284ad7b1b9ef7998
BLAKE2b-256 checksum
How to use checksums
62a430ad38dfeea8f5a5d31ec466c178c5edbdc730d8391a1b086d87f6b72707
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8630081a61df8ecd5ce5de0443d31d4cccde41aceb170c48b7c216dd20729e5c
BLAKE2b-256 checksum
How to use checksums
a71bed93d24f834da78adb6e7ee681d795dd50c9dc82c6ef2187b8b52303b6c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp311-cp311-win_amd64.whl

Download URL rytest-0.1.0-cp311-cp311-win_amd64.whl
Size 1.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
e0bd036b1c0124aafcf21f3b3c18a659e3ed019ac8cb26ad7f12ecc13b685623
BLAKE2b-256 checksum
How to use checksums
899960e15c0eb9ae0c30bd8268fa1b85fd3803de0996240eecc09e17652228dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp311-cp311-win32.whl

Download URL rytest-0.1.0-cp311-cp311-win32.whl
Size 1.5 MB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
ac00e4c005226dd3364222732a272a64715aad876e13201be2c912aa167b704b
BLAKE2b-256 checksum
How to use checksums
768dcca83740bd5fec229949c8425af19928323e4644672025606a0eec0c0d0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3ce3af03251571f2ea51e46b5630e9b75714b990578fd4e007218f88f26ba855
BLAKE2b-256 checksum
How to use checksums
56e7d143bc0db950033963f9864b9178b655987baa67d2a7cb9961c1f1acb3a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b768a13cd63537c5613ce8e47bdf1f1f3a72419aa1fd5e2ad6dd4337311dbf04
BLAKE2b-256 checksum
How to use checksums
33df2c3b1fee2ede114146c84eceb65fd9d1b1fc44bf44d91e0f79ab1b67ee15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp310-cp310-win_amd64.whl

Download URL rytest-0.1.0-cp310-cp310-win_amd64.whl
Size 1.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
bb257c568e97b173afde15267111d5ddfa9656998b92535c50c90ba04719f6fd
BLAKE2b-256 checksum
How to use checksums
5f8f30a98351891e98558f16ae9d5d6d920a3abca5a2fa5d90584405dbb914c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp310-cp310-win32.whl

Download URL rytest-0.1.0-cp310-cp310-win32.whl
Size 1.5 MB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
9a3449d56434a0ffdc922b36215d0e67f52289d53388ded50c97e18d01b322cb
BLAKE2b-256 checksum
How to use checksums
2d344a12ff0442540bea3ddfaaca7a33074fd265d0eaf2a51afe6cf37721a754
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp39-cp39-win_amd64.whl

Download URL rytest-0.1.0-cp39-cp39-win_amd64.whl
Size 1.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
40357a0ffadcd0ebcba924cb4d722be6c315f3a77fc7c3a7e31a91daa9890901
BLAKE2b-256 checksum
How to use checksums
6f518cb158f721594514b12ac127c955913c6d08284809af26c739ae52308d07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Release files / rytest-0.1.0-cp39-cp39-win32.whl

Download URL rytest-0.1.0-cp39-cp39-win32.whl
Size 1.5 MB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
bba7ea7d1cb92b3e054eaa00e7dd4f7bbce1a56a72a32a6fdd75a293d31094cf
BLAKE2b-256 checksum
How to use checksums
25decf9dae9ca3b052399c36d333b2d5e471ca804886eb850cc0e48c5a53f47b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.7.7

Security for rytest 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

13 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page