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-agentis 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 filesrc/services/user.py src/services/user.early.test/test_get_user.pyrootFolder: Tests are placed in a roottests/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
- Scan -- Discovers Python source files in the target directory
- Extract -- Analyzes each file to identify public functions and methods
- Generate -- Uses AI to generate unit tests for each function
- Validate -- Runs generated tests with pytest, keeping only green (passing) tests
Troubleshooting
Support
- Documentation: docs.startearly.ai
- Email: support@startearly.ai
- Website: www.startearly.ai
License
Commercial
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file earlyai_agent-0.2.3.tar.gz.
File metadata
- Download URL: earlyai_agent-0.2.3.tar.gz
- Upload date:
- Size: 56.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a049464fb832f57f5aa1049dda023b0cb47ba11eb71fd590507f9dec3c2acda0
|
|
| MD5 |
8f425d0348d97984747abe5db18093c2
|
|
| BLAKE2b-256 |
0bd618d51f46642d82b21f7a70158f1f35905bbb151eeff24cff66f51f4d5e92
|
File details
Details for the file earlyai_agent-0.2.3-py3-none-any.whl.
File metadata
- Download URL: earlyai_agent-0.2.3-py3-none-any.whl
- Upload date:
- Size: 75.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d329bb51e8de6d8122aeab18817bf2e11f6e4bdeac0647646d274d47e17d62d
|
|
| MD5 |
3417b392c078021f377f18575ef63d6d
|
|
| BLAKE2b-256 |
ff097a66f9925e5a2a88c2687ae2c34fee74c8ecaf881f6147bc82b374c9768c
|