Note
Beta Status
Kerno is still in active development and things may change quickly.
We will move out of beta once the core workflow feels smooth for everyday use and we are confident in the developer experience.
Kerno is an integration testing co-pilot for backend developers. It autonomously generates, runs, and maintains context aware tests inside your IDE.
Kerno is available on VS Code, Cursor, and Windsurf.
- Clone this repository.
- Install the Kerno extension from the VS Code Marketplace or from Open VSX.
- Enter your Kerno key when prompted to activate the extension. You can request your key here.
- Kerno will start indexing your codebase automatically. You can track progress in the sidebar.
- Once indexing is complete, you can begin creating integration tests.
- Open any Python file that contains an endpoint.
- Select the endpoint you want to test.
- Click the Run tests with Kerno button that appears above the function definition.
4. Kerno will generate and run the tests for you.
This is a complete FastAPI application featuring JWT authentication, user management, and game CRUD operations with PostgreSQL database.
- 🔐 Pure JWT Authentication - Secure login and registration (no OAuth2 dependencies)
- 👤 User Management - Full CRUD operations for users
- 🎮 Game Management - Full CRUD operations for games
- 🔗 Relationships - Users can own multiple games
- 🐘 PostgreSQL - Database backend
- 📝 API Documentation - Auto-generated with Swagger UI and ReDoc
- ✅ Type Safety - Pydantic models for request/response validation
example-python/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI application entry point
│ ├── database.py # Database configuration
│ ├── models.py # SQLAlchemy models
│ ├── schemas.py # Pydantic schemas
│ ├── auth.py # JWT authentication utilities
│ ├── migrations.py # Migration runner for startup
│ └── routers/
│ ├── __init__.py
│ ├── auth.py # Authentication endpoints
│ ├── users.py # User CRUD endpoints
│ └── games.py # Game CRUD endpoints
├── alembic/
│ ├── env.py # Alembic environment configuration
│ ├── script.py.mako # Migration template
│ └── versions/ # Migration scripts directory
│ ├── *.py # Python migration files
│ ├── *_upgrade.sql # SQL upgrade scripts
│ └── *_downgrade.sql # SQL downgrade scripts
├── alembic.ini # Alembic configuration
├── requirements.txt
├── Dockerfile # Docker container setup
├── env.example # Environment variables template
└── README.md # This file
- Python 3.8+
- Docker and Docker Compose (for PostgreSQL)
- pip or pipenv
id: Integer (Primary Key)username: String (Unique)email: String (Unique)hashed_password: Stringcreated_at: DateTime
id: Integer (Primary Key)title: Stringdescription: String (Optional)genre: String (Optional)owner_id: Integer (Foreign Key to Users)created_at: DateTime
Relationship: One user can have many games (One-to-Many)
This project uses Alembic for database migrations with SQL scripts that are committed to the repository. Migrations run automatically when the application starts.
-
Automatic Migration on Startup: When the application starts, it automatically runs any pending migrations to bring the database schema up to date.
-
SQL Scripts: All migrations are defined using raw SQL scripts stored in
alembic/versions/directory, making the schema changes transparent and version-controlled. -
Migration Files:
c0edcc12896e_initial_migration_with_users_and_games_.py- Python migration file with SQL operationsc0edcc12896e_initial_migration.sql- Upgrade SQL scriptc0edcc12896e_downgrade.sql- Downgrade SQL script
MIT