RunSights
The run you just sent, with every test and attempt, where it ran and who ran it. Trends build from the second run.
Your trial gives you an npm token and a project key. Nothing else changes in how you run Playwright or Cucumber.
No trial yet? Request one ↗, or book a demo.
The packages are restricted. Put the token you received in NPM_TOKEN and let npm read it from an .npmrc in the project root, which is safe to commit because it holds the variable's name, not its value.
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
$ export NPM_TOKEN=<the token from your trial>
$ npm install --save-dev @vibetestq/tamash-shield @vibetestq/tamash-runsightsOne command adds the RunSights reporter to your Playwright config, sets an actionTimeout when there is none, switches your test files to import from Shield, and leaves a place for the key in .env. It shows every change and asks before writing; --dry-run only shows.
$ npx tamash-shield init
[changed] package.json: installed @vibetestq/tamash-runsights
[changed] playwright.config.ts: added the reporter
[changed] playwright.config.ts: set actionTimeout
[changed] tests/checkout.spec.ts: imports test and expect from @vibetestq/tamash-shield
[changed] .env: TAMASH_LICENSE_KEY, paste your project keyThen copy the project key from Projects in the portal into .env. The key says which project; it is not a secret in the sense of a password, but keep it out of public repositories.
The key says which project, a token says who. On a laptop, sign in once from the browser; the machine gets its own token in your name, and a run from it shows under your name in RunSights.
$ npx tamash-shield login
Signing in dana-macbook. Open this address and approve the machine when the code reads 7KQ2-M9FD:
https://tamash.vibetestq.com/connect?code=7KQ2-M9FD
Signed in as dana@example.com: dana-macbook now has its own access token.In CI, there is nobody to approve a machine, so an Org Admin or a project admin makes a service token for the project in the portal and the pipeline carries it as a secret named TAMASH_ACCESS_TOKEN, next to TAMASH_LICENSE_KEY. A service token works only in a pipeline; a personal token works only on a person's machine.
Nothing in your command line changes.
$ npx playwright test
✓ checkout.spec.ts › the cart lists the items
[self-healer] checkout.spec.ts:18 — locator.click "Pay now" -> HEALED [by TAMASH, suggested="getByRole('button', { name: 'Pay now' })"]
✓ checkout.spec.ts › the payment step opens
8 passed (6.2s)
TAMASH RunSights: run sent (8 tests)Cucumber.js (v8 and later) uses the same packages through a formatter. Add it beside your console formatter in cucumber.js; the options go under formatOptions.tamashDashboard.
module.exports = {
default: {
format: ['progress', '@vibetestq/tamash-runsights/cucumber:playwright-dashboard/cucumber-formatter.txt'],
formatOptions: { tamashDashboard: { outputDir: 'playwright-dashboard' } },
},
};npx tamash-shield doctor confirms the service accepts your key and answers within your actionTimeout, and points out locators that would heal better with a .describe() label. Then open the portal:
The run you just sent, with every test and attempt, where it ran and who ran it. Trends build from the second run.
The heals of the run, by test, with the locator that broke and the one that worked, and anything that needs a look.
With Forge, the same runs also count toward the test cases and cycles they are linked to.
| Variable | What it is | Where |
|---|---|---|
NPM_TOKEN | Read access to the packages, from your trial or license. | Your shell and CI, read by .npmrc |
TAMASH_LICENSE_KEY | The project key from Projects in the portal. Says which project. | .env locally, a secret in CI |
TAMASH_ACCESS_TOKEN | A service token for a pipeline. On a laptop, login saves a personal token instead. | A secret in CI only |
TAMASH_PORTAL_URL | Only when your organization runs its own portal. Otherwise unset. | Optional |
Questions on the way in: support@vibetestq.com, or book a demo and bring your repository.