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.
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
- CodeBeaver discovers a bug and explains where the problem is
- CodeBeaver updates a test given the new code commited
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"
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
-v, --verbose
: Enable verbose logging output--version
: Display CodeBeaver version number
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
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
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
CodeBeaver currently supports:
- Python
- TypeScript
- [✅] Unit tests
- [✅] E2E Tests
- Better reporting
- Integration Tests
- Unit Tests: Add support for more languages and frameworks
- Unit Tests: Add support for more testing frameworks
- Add support for more models
- Found a bug? Open an issue!
- Join the community on Discord
- Questions? Hit us up at info@codebeaver.ai