> ## 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.

# Playwright Azure DevOps Integration

> Connect the TestDino Azure DevOps extension to view test runs inside Azure DevOps.

The TestDino Azure DevOps extension displays test run data directly inside Azure DevOps. It connects to your TestDino project using a Project Access Token and fetches results over HTTPS.

**Extension link:** [TestDino on Visual Studio Marketplace ↗](https://marketplace.visualstudio.com/items?itemName=testdino.testdino)

## Quick Reference

| Task              | Action                            | Link                                                |
| :---------------- | :-------------------------------- | :-------------------------------------------------- |
| Install extension | Visual Studio Marketplace         | [Install](#install-the-extension)                   |
| Generate token    | Project → Settings → Integrations | [Generate token](#connect-azure-devops-to-testdino) |
| Connect extension | Paste token in Azure DevOps       | [Connect](#connect-azure-devops-to-testdino)        |
| View test runs    | TestDino tab in Azure DevOps      | [View runs](#viewing-test-runs)                     |
| Filter runs       | Time range and run type filters   | [Filtering](#filtering-and-refreshing-data)         |

## Key Features

| Feature               | Description                                                      |
| :-------------------- | :--------------------------------------------------------------- |
| Test run visibility   | View recent test runs with pass, fail, skipped, and flaky counts |
| Execution metadata    | Track duration, commit, branch, and environment per run          |
| Time filtering        | Filter test runs by date range                                   |
| Secure authentication | Read-only Project token-based access                             |

## Prerequisites

* An active Azure DevOps organization and project
* A TestDino account with at least one project
* Permission to install extensions in Azure DevOps
* A valid TestDino Project Access Token

## Install the Extension

<Steps>
  <Step title="Open the Marketplace">
    Go to the [Visual Studio Marketplace ↗](https://marketplace.visualstudio.com/items?itemName=testdino.testdino) and search for **TestDino**.

    <img src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/open-the-marketplace.webp" alt="Open the Visual Studio Marketplace" />
  </Step>

  <Step title="Install the extension">
    Click **Install** and select the Azure DevOps organization.
  </Step>

  <Step title="Confirm installation">
    After installation, **TestDino** appears in the left navigation of your Azure DevOps project.

    <img src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/confirm-installation.webp" alt="Confirm installation in Azure DevOps" />
  </Step>
</Steps>

## Connect Azure DevOps to TestDino

After installation, connect the extension to TestDino.

<Steps>
  <Step title="Open TestDino in Azure DevOps">
    * Navigate to your Azure DevOps project
    * From the left sidebar, click **TestDino**

    You will see a **Connect to TestDino** screen prompting for a Project token.

    <img style={{ maxWidth: "80%" }} src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/connect-to-testdino.webp" alt="Connect to TestDino screen" />
  </Step>

  <Step title="Generate a TestDino Access Token">
    1. Log in to **TestDino** and select your **Organization**
    2. Go to **Project → Settings → API Keys**
    3. Click **New** and select **Access Token**

    <img style={{ maxWidth: "60%" }} src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/generate-testdino-api-token.webp" alt="Generate TestDino Access Token" />

    4. Copy the generated token

    <img style={{ maxWidth: "60%" }} src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/create-personal-access-token.webp" alt="Create Access Token" />

    <Warning>
      **Warning**

      Keep this token secure. It provides read access to your test run data.
    </Warning>
  </Step>

  <Step title="Connect Using API Token">
    Paste the Project token into the input field in Azure DevOps and click **Connect**.

    <img style={{ maxWidth: "50%" }} src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/connect-using-api-token.webp" alt="Connect using API token" />

    Once connected, TestDino will start loading your test runs.
  </Step>
</Steps>

## Viewing Test Runs

After a successful connection, you can view TestDino test runs directly in Azure DevOps.

Each test run displays:

| Field                | Description                                           |
| :------------------- | :---------------------------------------------------- |
| Test Run ID          | Unique identifier and execution duration              |
| Commit               | Associated commit hash                                |
| Triggered by         | The user who initiated the run                        |
| Branch & environment | Source branch and test environment                    |
| Results summary      | Passed, failed, skipped, flaky, and total test counts |

This allows teams to quickly assess test health without leaving Azure DevOps.

<img src="https://tdstorageus.blob.core.windows.net/public/docs/integrations/ci-cd/playwright-azure-devops/viewing-test-runs.webp" alt="Viewing test runs in Azure DevOps" />

## Filtering and Refreshing Data

Use the built-in controls to refine displayed test runs:

| Control           | Function                                              |
| :---------------- | :---------------------------------------------------- |
| Time range filter | Show runs from a specific period (e.g., Last 30 days) |
| Test run filter   | Filter by run type                                    |
| Refresh button    | Fetch the latest data from TestDino                   |

## Removing or Updating the API Token

If you need to change or revoke access:

* Click **Remove Token** in the TestDino Azure DevOps view
* Reconnect using a new Project Access Token

This is useful when rotating credentials or switching TestDino projects.

## Permissions and Security

The extension uses a read-only API token to fetch test run data.

* No test execution or data modification is performed
* Data is fetched securely over HTTPS
* Tokens can be revoked anytime from the TestDino settings

## Troubleshooting

<AccordionGroup>
  <Accordion title="No test runs visible" icon="eye-slash">
    * Ensure the Project Access Token belongs to the correct TestDino project. Generate it from **Settings → Integrations → Project Access Token**
    * Confirm that test runs exist in the TestDino project
    * Click the refresh button on the extension to fetch the latest data
  </Accordion>

  <Accordion title="Authentication error" icon="lock">
    * The extension uses a Project Access Token created from **Settings → Integrations → Project Access Token** in TestDino. Verify the token is valid and has not been revoked
    * Click **Remove Token** in the Azure DevOps extension view, then reconnect using a new Project Access Token
  </Accordion>

  <Accordion title="Extension not visible in Azure DevOps" icon="puzzle-piece">
    * Confirm the extension is installed for the correct Azure DevOps organization and project
    * Check **Organization Settings → Extensions** in Azure DevOps to verify installation
  </Accordion>

  <Accordion title="Token expired or revoked" icon="clock">
    * Generate a new Project Access Token from **Settings → Integrations → Project Access Token** in TestDino
    * Remove the old token in the Azure DevOps extension and paste the new one
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="GitHub App" icon="github" href="/integrations/ci-cd/github">
    PR comments, CI checks, and pull request sync
  </Card>

  <Card title="GitLab" icon="gitlab" href="/integrations/playwright-gitlab-ci">
    MR comments and merge request sync
  </Card>

  <Card title="Generate API Keys" icon="key" href="/guides/generate-api-keys">
    Create API tokens for integrations
  </Card>

  <Card title="Integrations Overview" icon="puzzle-piece" href="/integrations/overview">
    All available TestDino integrations
  </Card>
</CardGroup>
