Skip to main content

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

Project description

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.

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

rytest-0.1.0.tar.gz (27.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rytest-0.1.0-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

rytest-0.1.0-cp312-cp312-win32.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86

rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rytest-0.1.0-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

rytest-0.1.0-cp311-cp311-win32.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86

rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rytest-0.1.0-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

rytest-0.1.0-cp310-cp310-win32.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86

rytest-0.1.0-cp39-cp39-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86-64

rytest-0.1.0-cp39-cp39-win32.whl (1.5 MB view details)

Uploaded CPython 3.9Windows x86

File details

Details for the file rytest-0.1.0.tar.gz.

File metadata

  • Download URL: rytest-0.1.0.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f25a32f128ed2bb43caf485191369af501a764283a69f2b80863c38122e6ce25
MD5 29eee6d5f3f853f6c4b79c27d86512e5
BLAKE2b-256 d09a496b5e85433fe881876ac9415de2e3ba27a56198421b1770897dd1c071d7

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rytest-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 20b74975d433fc64ae44e235ea7be941947f1a742844edd63b554cff7441b247
MD5 343575dbc453d7d3841ea32257e97fb3
BLAKE2b-256 99bd125423cf48de452df20f4dc2eb0a5ff5017d4de316183412c83e61b69228

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: rytest-0.1.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 9a77b0061241bc30e3024b038428686ea260f7bf5635fc181020c8d0c26d8b59
MD5 b2548965fe7c0c06418d9011ffc5b0f2
BLAKE2b-256 c1632aed07e2f95287c4d15aee83c7df2d1acf57c5c91a38719e872003002dc6

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rytest-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4930a8659d1cc10e4a532129202db954ffd1278d4326dfa4284ad7b1b9ef7998
MD5 f820865fd91421f97418dabac71a5400
BLAKE2b-256 62a430ad38dfeea8f5a5d31ec466c178c5edbdc730d8391a1b086d87f6b72707

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rytest-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8630081a61df8ecd5ce5de0443d31d4cccde41aceb170c48b7c216dd20729e5c
MD5 b9041899c1ca64106f8fe151ca4aa65a
BLAKE2b-256 a71bed93d24f834da78adb6e7ee681d795dd50c9dc82c6ef2187b8b52303b6c7

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rytest-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e0bd036b1c0124aafcf21f3b3c18a659e3ed019ac8cb26ad7f12ecc13b685623
MD5 a3dc910070d74006b30864efc8b32835
BLAKE2b-256 899960e15c0eb9ae0c30bd8268fa1b85fd3803de0996240eecc09e17652228dc

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: rytest-0.1.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ac00e4c005226dd3364222732a272a64715aad876e13201be2c912aa167b704b
MD5 04e5ecaa7f81a519065bf57e403608ee
BLAKE2b-256 768dcca83740bd5fec229949c8425af19928323e4644672025606a0eec0c0d0a

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rytest-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ce3af03251571f2ea51e46b5630e9b75714b990578fd4e007218f88f26ba855
MD5 4be2c5239e13db75cc2d6a50920afa0f
BLAKE2b-256 56e7d143bc0db950033963f9864b9178b655987baa67d2a7cb9961c1f1acb3a4

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rytest-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b768a13cd63537c5613ce8e47bdf1f1f3a72419aa1fd5e2ad6dd4337311dbf04
MD5 1074f45a130e5073439acf51cb3116a8
BLAKE2b-256 33df2c3b1fee2ede114146c84eceb65fd9d1b1fc44bf44d91e0f79ab1b67ee15

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rytest-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bb257c568e97b173afde15267111d5ddfa9656998b92535c50c90ba04719f6fd
MD5 6f7b439ee4eb870115eeae34a916b606
BLAKE2b-256 5f8f30a98351891e98558f16ae9d5d6d920a3abca5a2fa5d90584405dbb914c7

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: rytest-0.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 9a3449d56434a0ffdc922b36215d0e67f52289d53388ded50c97e18d01b322cb
MD5 5503ccc4342fbe38b95cc74077151247
BLAKE2b-256 2d344a12ff0442540bea3ddfaaca7a33074fd265d0eaf2a51afe6cf37721a754

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: rytest-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 40357a0ffadcd0ebcba924cb4d722be6c315f3a77fc7c3a7e31a91daa9890901
MD5 80ef8f8aeb3fb7bd992bbb2471437d66
BLAKE2b-256 6f518cb158f721594514b12ac127c955913c6d08284809af26c739ae52308d07

See more details on using hashes here.

File details

Details for the file rytest-0.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: rytest-0.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.7

File hashes

Hashes for rytest-0.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 bba7ea7d1cb92b3e054eaa00e7dd4f7bbce1a56a72a32a6fdd75a293d31094cf
MD5 005e69f99bf5fff7c67cfbbfd77e872f
BLAKE2b-256 25decf9dae9ca3b052399c36d333b2d5e471ca804886eb850cc0e48c5a53f47b

See more details on using hashes here.

Supported by

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