Setup playwright for dev and production e2e testing
Playwright can help run your tests in browsers and setup tests to run in the browser.
Because Playwright uses browsers, it needs to install them. At this point you could skip to installing and using the docker version which installs the browsers for you on an Ubuntu based container.
Incorporating containers
Production config
This is an example from the docs which I set the base URL for production. Change the baseURL based on the environment you want to test on.
// playwright.config.ts
import { PlaywrightTestConfig, devices } from "@playwright/test";
const config: PlaywrightTestConfig = {
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
use: {
trace: "on-first-retry",
baseURL: "https://create.ecogarden.design",
},
projects: [
{
name: "chromium",
use: { ...devices["Desktop Chrome"] },
},
{
name: "firefox",
use: { ...devices["Desktop Firefox"] },
},
{
name: "webkit",
use: { ...devices["Desktop Safari"] },
},
],
};
export default config;
Dev config
This adds a webserver running the dev server. Notice we change the baseURL to the local development environment.
// playwright.dev.config.ts
import config from "./playwright.config";
const devConfig = {
...config,
webServer: {
command: "yarn run dev",
port: 5000,
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
},
};
if (devConfig.use) {
// eslint-disable-next-line fp/no-mutation
devConfig.use.baseURL = "http://localhost:5000";
}
export default devConfig;
Then run your tests:
yarn run playwright test e2e
And run tests for your dev environment:
yarn run playwright test --config=playwright.dev.config.ts e2e