QAce for VS Code
Run QAce natural-language end-to-end tests without leaving your
editor. Pick a suite or the test in the current file, choose an environment, and
watch results stream into the QAce output channel — a failing run offers to
open the dashboard.
What's new in 2.0
- Code index upload — QAce: Upload code index (or the status-bar item)
uploads a lightweight index of your workspace (hashes, languages, routes,
component names, small excerpts) so the server can plan and target tests
against your actual code. Turn on
qace.autoIndex to re-upload after saves;
add qace.indexExcludes patterns on top of the built-in denylist.
- Plan view + Build chat — the sidebar gains a Plan tree (pages → steps
with status icons) and a Build chat panel that drafts and refines the plan
with you.
- Run impacted tests — QAce: Run impacted tests (from git diff) runs only
the tests affected by your uncommitted changes.
- Run watcher — long runs keep being polled in the background (status-bar
progress) and are reported when they finish.
- Note: the code index requires a token with the new
code:write scope — if
you signed in before 2.0, run QAce: Sign in once to refresh your token.
Click the QAce icon in the activity bar for a dedicated panel:
- QAce — connection status, API-key state, quick actions (run a suite / run
the current test / list tests / open dashboard), and inline settings (server
URL + executor, plus a link to full settings).
- Tests / Suites / Environments / Runs — browse everything from your project.
Tests and suites have an inline ▶ to run them; runs show pass/fail status and
reveal details in the output channel. Each list refreshes from its title bar and
auto-refreshes after a run.
When you're not connected yet, the views prompt you to Set API key.
Requirements
- A QAce server (SaaS
https://qace.io, or self-hosted).
- A scoped API key (personal access token) with the
runs:write scope.
Create one in the dashboard under Settings → API keys. runs:write lets the
extension start runs and read tests/suites/environments/runs.
- VS Code 1.84+ (the extension uses the built-in
fetch, available on the Node 18
runtime that ships with 1.84 and later).
Setup
- Install the extension and open the QAce panel from the activity bar.
- Click Sign in with QAce (or run QAce: Sign in). Your browser opens
qace.io, you approve, and the editor is signed in automatically through a secure
vscode:// callback — no token to copy. The editor receives a scoped, revocable
qace_pat_ (manage it under Settings → API keys on qace.io).
Prefer a token? QAce: Set API key still works — paste a qace_pat_… with
the runs:write scope; it's stored in the OS keychain, not settings.json.
- Self-hosting? Set
qace.serverUrl first (defaults to https://qace.io).
How browser sign-in works
The extension opens {serverUrl}/auth/extension with a one-time state and a
vscode://drinktea.qace/… callback. After you authorize on qace.io, the page mints
a scoped PAT and redirects back to the editor, which verifies state and stores the
token. The callback target is restricted to editor URI schemes, so a token can never
be redirected elsewhere. (Requires a QAce server with this endpoint deployed.)
Commands
| Command |
What it does |
| QAce: Sign in |
Sign in through your browser (qace.io) and store a scoped token. |
| QAce: Run a suite |
Pick a suite + environment, run it, report results inline. |
| QAce: Run test under cursor / current file |
Runs the test matching the open .md file; if there's no match, pick one from a list. Also appears in the editor Run menu for .md files. |
| QAce: List tests |
Prints all tests and their status to the output channel. |
| QAce: Set API key |
Store (or clear) your API key securely. |
| QAce: Open dashboard |
Opens your QAce dashboard in the browser. |
| QAce: Upload code index |
Index the workspace and upload it to the server (also on the status bar). |
| QAce: Run impacted tests (from git diff) |
Run only the tests impacted by your changed files. |
Settings
| Setting |
Default |
Description |
qace.serverUrl |
https://qace.io |
Your QAce server URL. |
qace.apiKey |
"" |
Fallback key. Prefer QAce: Set API key (keychain-backed). |
qace.executor |
auto |
Run executor: auto (server chooses), lightpanda, api, playwright, or appium. |
qace.autoIndex |
false |
Re-upload the code index automatically (debounced) after saving a file. |
qace.indexExcludes |
[] |
Extra paths/globs excluded from the code index, on top of the built-in denylist. |
How it works
The extension calls the QAce REST API with your PAT as a bearer token:
GET /api/tests, GET /api/suites, GET /api/environments to populate pickers.
POST /api/runs ({ suiteId | testIds, environmentId, executor }) to start a run.
Server-driven runs execute to completion, so results are reported as soon as the
call returns; the summary and any failures are written to the output channel.
Notes
- Deep links open the dashboard home (
/dashboard); navigate to the run from there.
auto executor is recommended — it respects each environment's preference and
falls back correctly for API vs. browser tests.
License
MIT © QAce
| |