# Packaging Playwright projects for Test Manager

> Package a Playwright test project into a UiPath automation package and publish it to Orchestrator so Test Manager can execute it.

:::note
This capability is in controlled availability, delivered only to eligible tenants. It is available in Test Manager only when delivered through Test Cloud.
:::

Package a Playwright test project into a UiPath automation package (`.nupkg`) and publish it to Orchestrator, so the automation becomes available for execution from Test Manager.

## Prerequisites

* A self-contained Playwright test project directory: its own `playwright.config.*`, `package.json`, and a supported lockfile, with dependencies resolvable at the packed root. A mono-repo subfolder works only if it's self-contained.
* Playwright version 1.19 or later. npm is the only supported package manager — the packed root must contain a `package-lock.json`.
* The UiPath Command Line Interface (CLI) installed and updated to a recent version. See [Installing UiPath CLI](https://docs.uipath.com/uipath-cli/standalone/latest/user-guide/installing-uipath-cli).
* A Test Manager project key. Required by default — the CLI refuses to pack without one unless you pass `--no-create-test-cases`. Matching test cases are auto-created and auto-linked once Test Manager ingests the resulting package, not at packaging time. The key must be uppercase alphanumeric.

:::warning
Packaging excludes `node_modules`, `.git`, `.uipath`, `dist`, `test-results`, `playwright-report`, and `.cache`. It also always excludes secret files at any depth: `.env`, `.env.*`, `.npmrc`, and `.git-credentials`. Everything else in the project directory ships as-is, so keep secrets out of other files — hard-coded credentials in config or fixture files still ship.
:::

## Steps

1. Open a terminal in the Playwright project's root directory.
2. Run `uip tm pack` with the `--type playwright` option, for example:

   ```shell
   uip tm pack --project-path . --type playwright --project-key SWAG --name SwagLabsDemo --package-version 1.0.0 -o .packages --output json
   ```

   For the full flag reference, including how to opt out of test-case auto-creation, see [uip tm pack](https://docs.uipath.com/uipath-cli/standalone/latest/user-guide/uip-test-manager-pack).
3. Publish the resulting `.nupkg` to the tenant's Orchestrator Package Feed, using one of the following:
   * Upload it manually in Orchestrator (**Packages** > **Upload**).
   * Drop it into a folder Orchestrator watches for packages.
   * Use the UiPath CLI to upload it directly from the command line.

## Result

The package appears in Orchestrator's Package Feed. If a project key was supplied, matching test cases are auto-created in that Test Manager project, with the Playwright automation already linked. Otherwise, the package's automations become available for selection through [Selecting automation](https://docs.uipath.com/test-manager/automation-cloud/latest/user-guide/selecting-automation).

## Related

* [Playwright test automation](https://docs.uipath.com/test-manager/automation-cloud/latest/user-guide/playwright-test-automation)
* [uip tm pack](https://docs.uipath.com/uipath-cli/standalone/latest/user-guide/uip-test-manager-pack)
* [Playwright test automation with the uipath-test skill](https://docs.uipath.com/coding-agents/standalone/latest/user-guide/build-test-playwright) — automate this entire flow, including packaging, from a coding agent.
