Skip to main content

LLM-powered automatic test generation for Python

Project description

earlyai-agent

AI-powered automatic unit test generation for Python, by Early.

earlyai-agent is the Python analysis engine used by the Early CLI to generate green (passing) unit tests. It analyzes your source code, identifies public functions and methods, and generates pytest tests using AI.

Note: earlyai-agent is a dependency of the Early CLI and is not intended to be used standalone. Install and operate it through the Early CLI.

Installation

1. Install the Early CLI

npm install -g @earlyai/cli

See the CLI Installation Guide for details.

2. Install earlyai-agent

pip install earlyai-agent

Requirements: Python 3.11+

3. Get an API Key

You need an EarlyAI API key to use the agent. Contact support@startearly.ai or visit www.startearly.ai to get one.

Usage

All commands are run through the Early CLI. See the full CLI documentation for all options.

Generate tests for a project

early generate-project \
  --api-key <your-api-key> \
  --token <your-github-token> \
  --target-directory src/ \
  --ref-name <branch-name> \
  --test-framework pytest

See the Repo CLI Guide for more details.

Generate tests on a pull request

early generate-pr \
  --api-key <your-api-key> \
  --token <your-github-token> \
  --pr-number 123 \
  --ref-name feature/my-branch \
  --test-framework pytest

See the PR CLI Guide for more details.

Run locally

For quick local evaluation, see Running Early CLI Locally.

Configuration

All options can be set via CLI flags or environment variables:

Flag Env Variable Default Description
--api-key API_KEY -- EarlyAI API key (required)
--token TOKEN -- GitHub token for commits/PRs (required)
--target-directory TARGET_DIRECTORY . File or directory to generate tests for
--test-framework TEST_FRAMEWORK pytest Test framework (pytest)
--test-structure TEST_STRUCTURE siblingFolder Where to place tests (siblingFolder, rootFolder)
--max-concurrency MAX_CONCURRENCY 3 Number of concurrent workers
--max-testables MAX_TESTABLES unlimited Max methods to generate tests for

For the full configuration reference, see CLI Configuration.

Test file placement

  • siblingFolder (default): Tests are placed in a folder next to the source file
    src/services/user.py
    src/services/user.early.test/test_get_user.py
    
  • rootFolder: Tests are placed in a root tests/ directory mirroring the source structure

CI/CD Integration

GitHub Actions (PR)

Add to .github/workflows/early-pr-test-generation.yml:

name: Early PR Test Generation

permissions:
  contents: write
  pull-requests: write
  packages: read

on:
  pull_request:
    types: [opened, reopened, synchronize]
    branches: [main]

jobs:
  early-test-generation:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.head_ref }}

      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: |
          pip install earlyai-agent
          npm install -g @earlyai/cli

      - name: Generate tests
        continue-on-error: true
        env:
          API_KEY: ${{ secrets.EARLY_AGENT_API_KEY }}
          TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PR_NUMBER: ${{ github.event.pull_request.number }}
          REF_NAME: ${{ github.head_ref }}
          BASE_REF: ${{ github.base_ref }}
          TEST_FRAMEWORK: pytest
        run: early generate-pr

For other CI/CD systems (Jenkins, CircleCI, Bitbucket Pipelines), see the Agent Onboarding Guide.

How It Works

  1. Scan -- Discovers Python source files in the target directory
  2. Extract -- Analyzes each file to identify public functions and methods
  3. Generate -- Uses AI to generate unit tests for each function
  4. Validate -- Runs generated tests with pytest, keeping only green (passing) tests

Troubleshooting

Support

License

Commercial

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

earlyai_agent-0.2.2.tar.gz (56.2 kB view details)

Uploaded Source

Built Distribution

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

earlyai_agent-0.2.2-py3-none-any.whl (75.6 kB view details)

Uploaded Python 3

File details

Details for the file earlyai_agent-0.2.2.tar.gz.

File metadata

  • Download URL: earlyai_agent-0.2.2.tar.gz
  • Upload date:
  • Size: 56.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for earlyai_agent-0.2.2.tar.gz
Algorithm Hash digest
SHA256 248180e0337be97bdd2d3e8c640668cd1be307465c4ccab323131c9a66b28df6
MD5 03dadc05311ada60f06282c3cb26fb62
BLAKE2b-256 6f4ec73a4f0f62b456c9bf5bb039c1820a8eea247d898f091dd09a56ca47f5c4

See more details on using hashes here.

File details

Details for the file earlyai_agent-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: earlyai_agent-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 75.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for earlyai_agent-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 63c0a67209475ec25d57e2e2e6e58261e91794e0be6151ba656b679f6ef7e79e
MD5 8ef06109b11fd850a9c1fd72d1c4288d
BLAKE2b-256 ac60f9c24a6c36ee83831a9ca115a5a29fea2a8fdb1b6b273a09897f5190c325

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