TestWatchStart free

Export your tests as a Playwright project

The tests TestWatch writes are ordinary Playwright code. You can download the whole suite as a project that runs with npx playwright test, on any plan, so leaving doesn’t mean starting over.

by Vasyl Harastei

What you download

acme-playwright.zip
├── tests/
│   ├── sign-up.desktop-chrome.spec.ts
│   └── checkout.mobile-safari.spec.ts
├── files/
├── fixtures.ts
├── email-provider.ts
├── playwright.config.ts
├── package.json
├── tsconfig.json
├── .env.example
├── .gitignore
├── .github/workflows/playwright.yml
├── README.md
└── testwatch.json

An example layout; the file names come from your test titles and devices. Then, on any machine with Node:

npm install
npx playwright install
cp .env.example .env   # then fill in TARGET_EMAIL / TARGET_PASSWORD
npx playwright test

How it works

In the dashboard, open Scenarios and choose Export suite. Pick the environment and, if you like, tags. A preview shows what will be included before you download. The export holds the tests a run would run. Quarantined tests come only if you switch them on, and tests waiting for review are listed as skipped.

Each test file is the code TestWatch runs, unchanged, one file per device. Each device becomes a Playwright project, so --project=mobile-safari runs just that one. fixtures.ts keeps the helpers the tests import: otp(), file(), unique(), inbox() and the rest. .env.example lists variable names only. No password or token stored in TestWatch is written into the zip. A GitHub workflow and a testwatch.json manifest are included too.

You don’t have to leave to use it. You can commit the export to your repo as a backup, or run it in your own CI next to TestWatch. The same tests give the same files, so committing a new export shows only what changed. Export stays available even if your workspace is suspended.

What changes outside TestWatch

  • Logins come from TARGET_EMAIL and TARGET_PASSWORD, one set for the suite. 2FA codes come from TARGET_TOTP_SECRET.
  • Protected staging reads Basic auth, a Vercel bypass token, Cloudflare Access or extra headers from env vars, and still sends them only to TARGET_BASE_URL.
  • Email tests need an email service you control. Fill in email-provider.ts (an address function and a list function). Until then those tests fail with EMAIL_PROVIDER_NOT_CONFIGURED and the rest run.
  • Test data still gets one tw- prefix per npx playwright test, so you can find what a run created.
  • Before each test the fixtures open the base URL, accept a cookie banner and block a few chat widgets. The README says how to turn the widget blocking off.

What you give up

The export is the tests, not the service around them. Outside TestWatch there are no scheduled runs or alerts, no failure reasons, no proposed fixes when the page changes, no review inbox and no run history. Our test inboxes and the cleanup webhook stay behind too. When a test breaks, you fix the code yourself, as with any Playwright suite.

Limits

  • Export is from the dashboard only; API keys can’t download it yet.
  • Attached files past 100 MB in total are left out and listed in the README instead.
  • Device profiles are emulated Chrome and Safari viewports. There is no Firefox project.

Start free See how it works

Free: 5 tests, 500 runs a month, 2 apps and one daily schedule. Unlimited teammates, no card.