QualityPilot

3-minute setup

Install

Pick your stack. Each path: install one package, set one env var, ship.

Prerequisite — get an API key

  1. Sign in at qlens.dev with GitHub (free).
  2. Go to /dashboard/keys → "Create API key" (Pro+ plans).
  3. Copy the qlens_* value (shown once). Save as QLENS_API_KEY in CI secrets.

1. Install

npm install --save-dev @qlens/jest-reporter

2. Configure jest.config.js

module.exports = {
  reporters: [
    'default',
    ['@qlens/jest-reporter', {
      sendCases: true,    // optional, include per-case data
      maxCases: 5000,     // optional, hard cap
    }],
  ],
};

Playwright

package →

1. Install

npm install --save-dev @qlens/playwright-reporter

2. Configure playwright.config.ts

import { defineConfig } from "@playwright/test";

export default defineConfig({
  reporter: [
    ["list"],
    ["@qlens/playwright-reporter", {
      sendCases: true,
      maxCases: 5000,
    }],
  ],
});

Tests that pass on retry are counted as flaky (not passed). Surfaces as a flakiness trend on the dashboard.

1. Install

pip install qlens-pytest-reporter

2. Configure (no config — auto-registers via pytest11)

# Just install. Set env vars and run pytest as usual:
export QLENS_API_KEY=qlens_...
export GITHUB_REPOSITORY=owner/name
export QLENS_SEND_CASES=1   # optional
export QLENS_MAX_CASES=5000 # optional
pytest

Plays nicely with pytest-rerunfailures: passes after a rerun are counted as flaky.

Or: just the PR comment (no install)

Want the per-PR test scenarios without the dashboard? Add the [QA Advisor GitHub Action](https://github.com/marketplace/actions/qa-advisor-pr-test-coverage-analysis) to .github/workflows/qa-advisor.yml:

name: QA Advisor

on:
  pull_request:
    types: [opened, synchronize, reopened]

permissions:
  contents: read
  pull-requests: write

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - uses: i-kosheliev/qa-advisor-action@v1
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          min-priority: nice-to-test

Local heuristic, no LLM, no API key. 25 change patterns.

CI envs we detect

  • GitHub Actions — GITHUB_REPOSITORY, GITHUB_SHA, GITHUB_REF_NAME (auto)
  • GitLab CI — CI_COMMIT_SHA, CI_COMMIT_REF_NAME
  • CircleCI — CIRCLE_SHA1, CIRCLE_BRANCH
  • Jenkins — JENKINS_URL

Verify it worked

Run the test suite once with QLENS_API_KEY set. The reporter prints [qlens] uploaded N tests at the end. Then go to /dashboard and you'll see the run.

Bonus: README badge

After your first scan, embed the live grade in your repo README:

[![Test Health](https://www.qlens.dev/badge/owner/repo.svg)](https://www.qlens.dev/scan/owner/repo)

Related docs