CodeBeaver - Unit and E2E testing for your codebase
Project description
Testing on Autopilot
CodeBeaver is an open-source testing automation tool that leverages AI to simplify the testing process. It helps developers:
- 🤖 Run end-to-end tests using natural language descriptions
- 🧪 Generate and maintain unit tests automatically for your codebase
- 🐛 Detect potential bugs and provide detailed fix explanations
- ⚡ Reduce testing overhead while improving code quality
Currently supporting Python and TypeScript, with more languages coming soon.
Quickstart
Install the package
pip install codebeaver
Add a yaml file to your project called codebeaver.yaml. This tells CodeBeaver what to test and how.
e2e:
login-test: # Name of the test. You can add more
url: "localhost:3000" # Starting URL of your app. It can be a local server or a remote server
steps:
- Login with Github
- Go to the team page
- Change the team name to "e2e"
- Click on the "Save" button
- Check that the team name is "e2e" # use words like "Check that" to assert the results of the test
unit:
from: pytest # The Unit testing framework you want to use
That's it. To run it, you need to have an OpenAI API key and Chrome installed.
export OPENAI_API_KEY="your-openai-api-key"
codebeaver
You will get a summary report like the following:
🖥️ 1/1 E2E tests
login-test: Success!
🧪 14/15 Unit tests
🔄 1 test added and 1 test updated to reflect recent changes.
🐛 Found 1 bug
Examples
- CodeBeaver discovers a bug and explains where the problem is
- CodeBeaver updates a test given the new code commited
GitHub Action
CodeBeaver can be used in a GitHub Action to run unit tests on every commit and E2E tests after you release a new version.
Check out the action's README for more information, but here's a quick example:
name: Run CodeBeaver
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: codebeaver-ai/codebeaver-oss-action@0.1.0
with:
action-type: "unit"
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
after-deployment: # In this example, this step runs after a new release is deployed
needs: unit-tests
runs-on: ubuntu-latest
steps:
- uses: codebeaver-ai/codebeaver-os-action@v0.1.0
with:
action-type: "e2e"
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
STARTING_URL: "http://yourstaging.yourwebsite.com"
CLI Reference
Commands
codebeaver: Without any command, runs both unit and E2E tests if defined in codebeaver.ymlcodebeaver unit: Generates and runs unit tests for a specific filecodebeaver e2e: Runs end-to-end tests defined in codebeaver.yml
Command Options
Global Options
-v, --verbose: Enable verbose logging output--version: Display CodeBeaver version number
Unit Test Command
codebeaver unit --file <file_path> [--template <template_name>] [--max-files-to-test <number>] [--verbose]
--file: (Required) Path to the file to analyze--template: (Optional) Testing framework template to use (e.g., pytest, jest, vitest). If not specified, uses template from codebeaver.yml--max-files-to-test: (Optional) Maximum number of files to generate unit tests for (default: 10)-v, --verbose: (Optional) Enable verbose logging output
E2E Test Command
codebeaver e2e [--config <config_file>] [--verbose]
--config: (Optional) Path to the YAML configuration file (defaults to codebeaver.yml)-v, --verbose: (Optional) Enable verbose logging output
Environment Variables
OPENAI_API_KEY: (Required) Your OpenAI API keyCHROME_INSTANCE_PATH: Path to your Chrome instance. Defaults to/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Supported Languages and Frameworks
CodeBeaver currently supports:
- Python
- TypeScript
Resources
Roadmap
- [✅] Unit tests
- [✅] E2E Tests
- [✅] Add support for more models (thank you VinciGit00!)
- Better reporting
- Integration Tests
- Unit Tests: Add support for more languages and frameworks
- Unit Tests: Add support for more testing frameworks
Let's chat!
- Found a bug? Open an issue!
- Join the community on Discord
- Questions? Hit us up at info@codebeaver.ai
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 Distributions
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 codebeaver-0.1.3-py3-none-any.whl.
File metadata
- Download URL: codebeaver-0.1.3-py3-none-any.whl
- Upload date:
- Size: 87.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8036e75b8937f28b36637ffa70caa15b0926c0289bdc5f6804128d30553bd56c
|
|
| MD5 |
0cafc976632627b6c1b0c9036cadd365
|
|
| BLAKE2b-256 |
7955bf0cc99c780b7cd7b973d982e6868fc687be25b81aff5d9008b98a798797
|