E2E tests that read like specs
Vanya is a constrained DSL for end-to-end tests. Write once, transpile to Python, JavaScript, and more.
๐
Readable
Tests read like specifications. No boilerplate, no ceremony.
๐
Portable
Write once, transpile to Playwright, Requests, Cypress, and more.
๐ก๏ธ
Type-safe
Static analysis catches errors before runtime. Plugin schemas validate your tests.
๐งฉ
Extensible
Add new frameworks with TOML plugin files. No code changes required.
Write this, get that
Vanya transpiles your readable test specs into production-ready test code for your framework of choice.
login.vanya
vanya 0.1
"User can log in"
within Browser (plugin: playwright-python, type: browser)
go to "https://example.com/login"
type "user@example.com" into "Email"
type "password123" into "Password"
click "Sign In"
see "Welcome back"test_login.py (generated)
# Generated by vanya
from playwright.sync_api import sync_playwright
def test_user_can_log_in():
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com/login")
page.fill("[placeholder='Email']", "user@example.com")
page.fill("[placeholder='Password']", "password123")
page.click("text=Sign In")
assert page.locator("text=Welcome back").is_visible()
browser.close()Install in seconds
npm install -g vanya