> ## Documentation Index
> Fetch the complete documentation index at: https://docs.testdino.com/llms.txt
> Use this file to discover all available pages before exploring further.

# TestDino Frequently Asked Questions

> Answers to common questions about TestDino setup, API keys, Playwright test runs, integrations, and billing.

export const FaqSchema = ({questions = []}) => {
  const schema = {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    mainEntity: questions.map(({q, a}) => ({
      "@type": "Question",
      name: q,
      acceptedAnswer: {
        "@type": "Answer",
        text: a
      }
    }))
  };
  return <script type="application/ld+json" dangerouslySetInnerHTML={{
    __html: JSON.stringify(schema)
  }} />;
};

<FaqSchema
  questions={[
{ q: "What is TestDino and how does it work?", a: "TestDino turns a Playwright run into something you can act on. Results stream from CI as each test finishes, failures are grouped by root cause and flaky tests caught across runs, and run history shows what is worth fixing. Over MCP your AI agent then files the Jira or Linear ticket and writes the missing test case. Add @testdino/playwright to your Playwright config and results stream as tests run." },
{ q: "How does TestDino differ from Playwright's built-in HTML and JSON reporters?", a: "Playwright reporters show a single run snapshot. TestDino adds cross-run analytics, error grouping, Git and PR awareness, integrations, and historical stability tracking." },
{ q: "Which programming languages does TestDino support?", a: "JavaScript and TypeScript via @testdino/playwright. TestDino is Playwright-only." },
{ q: "Do I need MCP to use TestDino?", a: "No. MCP is optional. The dashboard, streaming, and integrations work without it." },
{ q: "Does TestDino work with monorepos?", a: "Yes. Each Playwright package streams with its own TESTDINO_TOKEN. Use separate TestDino projects for isolated analytics or one project for unified reporting." },
{ q: "How does TestDino detect flaky tests?", a: "Within a run (fail then pass on retry) and across runs (inconsistent outcomes without code changes). Stability is (Passed / Total Runs) x 100. Flaky root causes: Timing, Environment, Network, Assertion, or Other." },
{ q: "What counts as a test execution for billing?", a: "One test case per run, counted once no matter how many times it retries. Skipped tests are excluded. Artifacts do not affect the count. Usage resets monthly on your billing cycle date." },
{ q: "What roles exist at the organization level?", a: "Owner, Administrator, Member, Billing Manager, and Viewer. See Users and Roles for the permission matrix." },
{ q: "Is TestDino SOC 2 compliant?", a: "Yes. SOC 2 Type 2, ISO 27001, and GDPR. Contact support@testdino.com for audit reports or a signed DPA." },
{ q: "How is my test data encrypted?", a: "In transit over HTTPS with TLS 1.2 or higher, and at rest with AES-256 via cloud platform encryption." },
{ q: "Does my test data train AI models?", a: "No. Enterprise AI providers are under terms that prohibit training on customer content. AI can be disabled per project." },
{ q: "Can I use TestDino if my tests are in a separate repository?", a: "Yes. TestDino reads Playwright results from the run, not source code. Install the GitHub app on the repo where tests run." },
{ q: "Why does npx playwright test --tags fail?", a: "Playwright does not define --tags. That flag belongs to tdpw test. Use npx tdpw test --tags regression,smoke, or keep npx playwright test and set tags in the reporter options." },
]}
/>

Common questions about TestDino setup, streaming, API keys, test runs, integrations, and billing.

## Getting Started

<AccordionGroup>
  <Accordion title="What is TestDino and how does it work?">
    TestDino turns a Playwright run into something you can act on: results stream from CI, failures are grouped by root cause, and your AI agent files the ticket over MCP.

    Add `@testdino/playwright` to your config, set `TESTDINO_TOKEN`, and run `npx playwright test`.

    Full walkthrough: [Getting Started](/getting-started).
  </Accordion>

  <Accordion title="How do I get started with TestDino?">
    1. Create an organization and project
    2. Create an API key
    3. Install `@testdino/playwright` and add it to your Playwright config
    4. Set `TESTDINO_TOKEN` and run `npx playwright test`

    See [Getting Started](/getting-started) and [Generate API Keys](/guides/generate-api-keys).
  </Accordion>

  <Accordion title="Do I need to change my existing Playwright tests?">
    No. Add `@testdino/playwright` to the `reporter` array and set `TESTDINO_TOKEN`. No custom annotations or framework changes required.
  </Accordion>

  <Accordion title="What do I need to send results to TestDino?">
    The reporter streams results and, when Playwright produces them, traces, videos, and screenshots. Control capture with `use.trace`, `use.video`, and `use.screenshot` in Playwright config. Setup: [Node.js CLI](/cli/testdino-playwright-nodejs).
  </Accordion>
</AccordionGroup>

## Setup and Configuration

<AccordionGroup>
  <Accordion title="How does TestDino differ from Playwright's built-in HTML and JSON reporters?">
    Playwright reporters cover a single run. TestDino adds cross-run analytics, error grouping, Git and PR context, integrations, and historical stability. Product overview: [Overview](/index).
  </Accordion>

  <Accordion title="Which programming languages does TestDino support?">
    JavaScript and TypeScript via `@testdino/playwright`. TestDino is Playwright-only.
  </Accordion>

  <Accordion title="How do I send Playwright results to TestDino?">
    Install `@testdino/playwright`, add it to the `reporter` array, set `TESTDINO_TOKEN`, and run `npx playwright test`. Or run `npx tdpw test -t "$TESTDINO_TOKEN"` without editing config.

    Learn more in [Getting Started](/getting-started) and the [Node.js CLI reference](/cli/testdino-playwright-nodejs).
  </Accordion>

  <Accordion title="Does TestDino work with monorepos?">
    Yes. Each package streams with its own `TESTDINO_TOKEN`. Use separate TestDino projects for isolated analytics, or one project for unified reporting.
  </Accordion>

  <Accordion title="Can I use TestDino if my tests are in a separate repository?">
    Yes. TestDino reads results from the run, not source code. For GitHub PR comments and checks, install the TestDino app on the repo where tests run.
  </Accordion>

  <Accordion title="Do I need MCP to use TestDino?">
    No. The dashboard, streaming, and integrations work without MCP. MCP is for querying live data from Cursor, Claude, or ChatGPT. See [MCP Overview](/mcp/overview).
  </Accordion>
</AccordionGroup>

## API Keys and Authentication

<AccordionGroup>
  <Accordion title="How do I generate and manage API keys?">
    Create keys in **Project Settings → API Keys**. Copy the secret once and store it as `TESTDINO_TOKEN`. Full steps: [Generate API Keys](/guides/generate-api-keys).
  </Accordion>

  <Accordion title="My API key expired. What do I do?">
    1. Create a new key in **Project Settings → API Keys**
    2. Update CI secrets with the new key
    3. Run tests once to confirm streaming
    4. Delete the old key
  </Accordion>

  <Accordion title="How do I troubleshoot API request failures or run ID not found errors?">
    Confirm `TESTDINO_TOKEN` (streaming) or a `td_pat_` PAT (Public API / MCP), network access, and the correct project. For run IDs, confirm the run exists in that project. Symptom fixes: [Troubleshooting](/guides/playwright-troubleshooting).
  </Accordion>
</AccordionGroup>

## Test Runs and Results

<AccordionGroup>
  <Accordion title="How do I send test results from CI?">
    Store the key as a secret named `TESTDINO_TOKEN` and expose it to the test step. Provider guides: [CI Setup](/guides/ci-setup-overview).
  </Accordion>

  <Accordion title="Why are my streamed runs not appearing?">
    Check `TESTDINO_TOKEN`, that `@testdino/playwright` is in the `reporter` array, that the token matches the project, and CI logs for TestDino errors. Run `npx tdpw test --debug` for streaming logs. Full checklist: [Troubleshooting](/guides/playwright-troubleshooting#runs-not-appearing).
  </Accordion>

  <Accordion title="What is the difference between a test run, a test case, and a spec file?">
    | Term | Meaning |
    | :- | :- |
    | **Test run** | One full suite execution (`playwright test`) |
    | **Test case** | One `test()` block |
    | **Spec file** | One file that contains one or more test cases |

    Glossary: [Glossary](/glossary).
  </Accordion>

  <Accordion title="What information does the Test Run Summary provide?">
    Failed, flaky, and skipped tests grouped by cause, plus detailed analysis with filters. See [Run Summary](/platform/test-runs/playwright-failure-summary).
  </Accordion>

  <Accordion title="How do I view Playwright traces in TestDino?">
    Open a failed or flaky test from [Run Summary](/platform/test-runs/playwright-failure-summary#detailed-analysis), or use the Trace tab on [Test Case Details](/platform/playwright-test-cases). Guide: [Trace Viewer](/guides/playwright-trace-viewer).
  </Accordion>

  <Accordion title="What's the difference between traces and videos in TestDino?">
    Traces are interactive (actions, network, console, DOM). Videos are screen recordings. Use video for a quick look; use the trace for debugging. See [Visual Evidence](/guides/debug-playwright-failures/visual-evidence).
  </Accordion>

  <Accordion title="Can I search for specific test cases or errors?">
    Yes. Filter on [Test Runs](/platform/playwright-test-runs#search-and-filters) and group by message on [Errors](/platform/playwright-test-runs/errors).
  </Accordion>

  <Accordion title="Why are PRs not linking to test runs?">
    Confirm GitHub is connected, the run includes commit SHA metadata, and an open PR exists for the branch. See [GitHub integration](/integrations/ci-cd/github) and [Troubleshooting](/guides/playwright-troubleshooting#github-checks-and-comments).
  </Accordion>

  <Accordion title="Why does npx playwright test --tags fail?">
    Playwright does not define `--tags`. That flag belongs to `tdpw test`. Playwright exits with `error: unknown option '--tags'` before the test run starts.

    ```bash theme={null}
    npx tdpw test -t "$TESTDINO_TOKEN" --tags "regression,smoke"
    ```

    To keep `npx playwright test`, set `tags` in the reporter options. `TESTDINO_TAGS` and `testdino.config.ts` are read by `tdpw` only. `--tags` labels the TestDino test run. It does not filter which test cases run. Use Playwright `--grep` to filter. Learn how to set run labels in [Run-level tags](/cli/testdino-playwright-nodejs#run-level-tags).
  </Accordion>
</AccordionGroup>

## Flakiness and Test Health

<AccordionGroup>
  <Accordion title="How does TestDino detect flaky tests?">
    Within a run: fail then pass on retry. Across runs: inconsistent outcomes without code changes. Stability is (Passed ÷ Total Runs) × 100. Root causes: Timing, Environment, Network, Assertion, or Other. Guide: [Flaky Test Detection](/guides/playwright-flaky-test-detection).
  </Accordion>

  <Accordion title="How can I view and analyze flaky tests across multiple runs?">
    [Dashboard → Most Flaky Tests](/platform/playwright-test-dashboard#most-flaky-tests), [Analytics](/platform/playwright-test-analytics), [Test Case History](/platform/playwright-test-case-history), and [Test Explorer](/platform/playwright-test-explorer).
  </Accordion>

  <Accordion title="How does TestDino track historical stability for individual test cases?">
    [Test Case History](/platform/playwright-test-case-history) shows stability %, last status tiles, and an execution history table scoped to the current branch.
  </Accordion>
</AccordionGroup>

## Integrations

<AccordionGroup>
  <Accordion title="Which integrations does TestDino support?">
    CI/CD (GitHub, GitLab, Azure DevOps, TeamCity), issue tracking (Jira, Linear, Asana, monday), and Slack. Full list: [Integrations](/integrations/overview).
  </Accordion>

  <Accordion title="How do I integrate TestDino with GitHub for PR checks and comments?">
    Install the [TestDino GitHub App](https://github.com/apps/testdino-playwright-reporter), then configure comments and CI checks in [GitHub settings](/integrations/ci-cd/github).
  </Accordion>

  <Accordion title="What Quality Gate rules are available for GitHub CI Checks?">
    Pass rate, mandatory tags, flaky handling, and environment overrides. Configure these in [GitHub Status Checks](/guides/github-status-checks).
  </Accordion>

  <Accordion title="Why might a TestDino CI Check fail even if my pass rate looks high?">
    A mandatory-tag test failed, flaky handling is Strict, or an environment override is stricter. See [GitHub Status Checks](/guides/github-status-checks).
  </Accordion>

  <Accordion title="How do I create Jira or Linear issues from failed tests?">
    Connect the integration in Project Settings, open a failed test case, and use **Raise Bug** or **Raise Issue**. Guides: [Jira](/integrations/jira-playwright-test-failures), [Linear](/integrations/issue-tracking/linear).
  </Accordion>
</AccordionGroup>

## Environment Mapping and Branch Management

<AccordionGroup>
  <Accordion title="What is Environment Mapping, and why is it important?">
    It maps Git branches to environments (Production, Staging, Dev) so runs, Slack channels, and CI checks group correctly. Configure under Project Settings → Branch Mapping. Guide: [Environment Mapping](/guides/environment-mapping).
  </Accordion>

  <Accordion title="How is a run's environment assigned?">
    TestDino reads the branch from git metadata and applies the matching pattern. Pattern rules: [Environment Mapping](/guides/environment-mapping).
  </Accordion>

  <Accordion title="What happens if a branch does not match any mapping?">
    The run has no environment label and may drop out of environment filters. It still appears in the unfiltered Test Runs list. Add a matching pattern or catch-all. See [Best practices](/guides/environment-mapping#best-practices).
  </Accordion>
</AccordionGroup>

## Organizations and Projects

<AccordionGroup>
  <Accordion title="What is the difference between organizations and projects?">
    An **organization** holds team, users, billing, and settings. A **project** is one suite or app with its own runs, keys, and integrations. Hierarchy: Organization → Projects → Test Runs. See [Organization Overview](/platform/organization-overview) and [Project Overview](/platform/project-overview).
  </Accordion>

  <Accordion title="How do I invite team members and assign roles?">
    Open [Users & Roles](/platform/organizations/users-roles), invite by email, and assign a role.
  </Accordion>

  <Accordion title="What roles exist at the organization level?">
    Owner, Administrator, Member, Billing Manager, and Viewer. Permission matrix: [Users & Roles](/platform/organizations/users-roles).
  </Accordion>
</AccordionGroup>

## Billing and Pricing

<AccordionGroup>
  <Accordion title="What are the plan limits, and how is usage calculated?">
    Plans are based on test executions and user or project limits. Usage is monthly; retries within a run do not add to it. Track usage under Billing & Usage. See [Pricing](/pricing) and [Billing](/platform/billing-and-usage/overview).
  </Accordion>

  <Accordion title="What counts as a test execution for billing?">
    One test case per run, counted once however many attempts it takes. A test that fails and passes on retry is 1 execution, not 2. Skipped tests are excluded. Artifacts do not affect the count.
  </Accordion>

  <Accordion title="What happens if I exceed my plan limits?">
    Usage resets on your billing cycle date. Overage, if applicable, appears on the next invoice. Upgrade if you hit limits regularly. See [Billing](/platform/billing-and-usage/overview).
  </Accordion>

  <Accordion title="What happens if I cancel my subscription?">
    Access continues until the current period ends. The org moves to the Free plan with Free plan limits.
  </Accordion>

  <Accordion title="How do I upgrade or downgrade my plan?">
    Open **Manage Billing → View All Plans**, select a plan, and confirm. Upgrades usually apply immediately; downgrades at period end. See [Manage Billing](/platform/billing-and-usage/manage-billing).
  </Accordion>
</AccordionGroup>

## Security and Privacy

<AccordionGroup>
  <Accordion title="Is TestDino SOC 2 compliant?">
    Yes. SOC 2 Type 2, ISO 27001, and GDPR. See [Security & Compliance](/security/overview#certifications), or email **[support@testdino.com](mailto:support@testdino.com)** for audit reports or a signed DPA.
  </Accordion>

  <Accordion title="How is my test data encrypted?">
    TLS 1.2+ in transit and AES-256 at rest. See [Encryption](/security/overview#certifications).
  </Accordion>

  <Accordion title="Does my test data train AI models?">
    No. Providers are under terms that prohibit training on customer content. Disable AI per project if needed. See [AI data handling](/security/overview#certifications).
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Troubleshooting" icon="screwdriver-wrench" href="/guides/playwright-troubleshooting">
    Token, streaming, CI, and API fixes
  </Card>

  <Card title="Glossary" icon="book-a" href="/glossary">
    TestDino and Playwright terms
  </Card>

  <Card title="Discord" icon="discord" href="https://discord.gg/hGY9kqSm58">
    Community questions and updates
  </Card>

  <Card title="Email" icon="envelope" href="mailto:support@testdino.com">
    [support@testdino.com](mailto:support@testdino.com)
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.