How do I configure a web server for Playwright tests in an nx project?


Configure a Web Server for Playwright Tests

To set up a web server before running your tests with nx, use the webServer property in your Playwright config file. This allows you to launch a local dev server, ideal for testing during development without a staging or production URL.

Here's how to configure a web server:

  1. Define the shell command: Use the command property to specify the shell command that starts your app's local dev server.

    command: "npm run start"
  2. Set the URL: Use the url property to set the expected HTTP server URL. The server should return a 2xx, 3xx, 400, 401, 402, or 403 status code when ready for connections.

    url: "https://ray.run"
  3. Reuse an existing server: Set reuseExistingServer to true if you want to reuse an existing server on the URL instead of starting a new one every time tests are run.

    reuseExistingServer: true
  4. Add a timeout: If your web server takes longer than usual to boot up, set a timeout (in milliseconds).

    timeout: 120 * 1000
  5. Specify the baseURL: In the use section of your config, specify the baseURL so that tests can use relative URLs without repeating full URLs.

    use: {
      baseURL: "https://ray.run"
  6. Launch multiple servers: If you need to launch multiple web servers or background processes, define them within an array under the webServer object with their respective properties.

In summary, use the webServer property in your Playwright config file to configure a web server for your tests. Define the shell command, set the URL, reuse an existing server if needed, add a timeout, specify the baseURL, and launch multiple servers if required.

Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.