Skip to main content

A C/S architecture test runner for heavy AI projects.

Project description

Sprintest

[English] | 简体中文

Sprintest is a Client-Server (C/S) architecture test runner designed for heavy AI projects. It addresses the slow startup times of large models and datasets by keeping them preloaded in memory.

Core Advantages

  • Preloading: Keep heavy dependencies (like PyTorch, Transformers, or large datasets) loaded in the daemon process, reducing test startup time from minutes to seconds.
  • Strong Hot-Reloading: Automatically detects and nukes modified modules in the current directory, ensuring tests run against the latest code without restarting the daemon.
  • Agent Friendly: Designed with AI coding agents in mind—providing fast feedback loops, purified output (ANSI-free), and stable communication.

Installation

# Clone the repository
git clone https://github.com/QingGo/sprintest.git
cd sprintest

# Install in editable mode
pip install -e .

Quick Start

  1. Start the Daemon: In your project root, run:

    sprintest-daemon
    
  2. Run Tests: In another terminal, run:

    sprintest tests/your_test_file.py
    

Configuration

You can customize Sprintest using environment variables:

  • SPRINTEST_PORT: Set the port for the daemon and CLI communication (default: 8000).
  • SPRINTEST_TARGET_PKG: Set the name of the package to be hot-reloaded (e.g., your project's main package name). This ensures changes in your source code are detected.

Example:

export SPRINTEST_PORT=8001
export SPRINTEST_TARGET_PKG=my_project
sprintest-daemon

Regression Testing

To ensure stability, Sprintest includes integration tests. Run them using standard pytest:

pytest tests/test_sprintest_integration.py

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

sprintest-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

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

sprintest-0.1.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sprintest-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sprintest-0.1.0.tar.gz
Algorithm Hash digest
SHA256 40fc84052b449ca605eb08d7c7f5aab60412e9e3e4f15a3782ff2a55a0464480
MD5 e00bfbd8a652f658e91b5af57b5a88df
BLAKE2b-256 d92f6d9e190449499c76bc9d4622ba21a21768c0b18a8e3bcafb9244d7937242

See more details on using hashes here.

Provenance

The following attestation bundles were made for sprintest-0.1.0.tar.gz:

Publisher: publish.yml on QingGo/sprintest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: sprintest-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sprintest-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 749e426af350ba1cc2cbc1443936bf75c97d56682dc4212b5c2b6e1cef29e200
MD5 dcebd630db33adafd0cc790523e269b3
BLAKE2b-256 ed6f987a69a8b35814bda626c191e33d6407a75ef7baebf4532aac360dfb31bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sprintest-0.1.0-py3-none-any.whl:

Publisher: publish.yml on QingGo/sprintest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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