Azure DevOps (formerly VSTS) extension that integrates TestingBot into your pipelines: a configuration task that exports your TestingBot credentials and optionally launches TestingBot Tunnel, a task to stop the tunnel, and a build results tab.
Add a TestingBot service connection (Project settings → Service connections → New → TestingBot Credentials) with your key and secret, then reference the tasks:
steps:
# Exports TB_KEY / TB_SECRET / SELENIUM_HOST / … and (optionally) starts the tunnel.
- task: TBMain@0
inputs:
connectedServiceName: 'my-testingbot-connection'
tbTunnel: true # optional — needs Java 11+ on the agent
# ... run your Selenium/Appium tests here; they read the exported variables ...
# Only needed when tbTunnel was true. condition: always() ensures the tunnel is
# torn down even if a test step above failed.
- task: TBStopTunnel@0
condition: always()Test results appear on the TestingBot tab of the build summary.
Requires Node.js >= 20.
-
Install dependencies (once):
npm install
-
Set the release version in
package.json(single source of truth — it is stamped intovss-extension.jsonand bothtask.jsonfiles at package time). -
Build the
.vsix:npm run package
The packaged extension is written to
Packages/.
clean → compile (tsc compiles each task's index.ts) → build (webpack
bundles the results-tab scripts and copies the static files into dist/) →
deps (installs each task's production node_modules into dist/) → stamp
(writes the version into the built manifest and task definitions) → create
(tfx extension create).
To iterate on just the web bundle, run npm run build.
npm run lint # eslint (flat config, typescript-eslint)
npm test # tsc + mocha task testsCI runs lint, tests and a full package build on every PR targeting master
(.github/workflows/build.yml). Tagging a commit v* publishes to the
Marketplace (.github/workflows/publish.yml) — see that file for the required
AZURE_DEVOPS_MARKETPLACE_PAT secret and version-bump steps.