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.8.tar.gz (57.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.8-py3-none-any.whl (76.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: earlyai_agent-0.2.8.tar.gz
  • Upload date:
  • Size: 57.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.8.tar.gz
Algorithm Hash digest
SHA256 6226cae8bf8026dee6708c62e0e6cdef0e8649105905234781f2ba8024700e30
MD5 4639dabd00b8cfafa6dc83bb29bacaa0
BLAKE2b-256 061ae5084ce0cd0eebf5ebc761ebff0608dc39d5ee8ddc6212ed88e66225f6c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: earlyai_agent-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 76.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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 3791059a3d90c12cf88b003cfff11bc580c6a154087d8a9214b06f73f90bec93
MD5 db7d62042e4424992df6c460bbded887
BLAKE2b-256 249900b5cc59a2f0495c0ecb4d5a1124a53ca826da2fa90f1119656c9b98b902

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