> ## 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 is a Playwright-focused test reporting and management platform with MCP support. It ingests Playwright results from CI or local execution, links runs to branches and pull requests, and provides dashboards, cross-run analytics, error grouping, and flaky test detection. 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 run. Skipped tests are excluded. Retries count separately. 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 Azure 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." },
]}
/>

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 is a Playwright test reporting and management platform with MCP support. Add `@testdino/playwright` to your config, set `TESTDINO_TOKEN`, and run `npx playwright test`. Results stream during the run and link to branches and PRs.

    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" --server-url https://reporter.testdino.com` 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/troubleshooting-playwright).
  </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/troubleshooting-playwright#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/troubleshooting-playwright#github-checks-and-comments).
  </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 count. 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 run. Skipped tests are excluded. Retries count separately. 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 Community plan with Community 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](/data-privacy/security-compliance), 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](/data-privacy/security-compliance#encryption).
  </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](/data-privacy/security-compliance#ai-data-handling).
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Troubleshooting" icon="screwdriver-wrench" href="/guides/troubleshooting-playwright">
    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>
