If a test fails (retries included), the test runner will stop after reaching maxFailures. We will not have to wait for all tests to run to see the results.
86 lines
2.4 KiB
TypeScript
86 lines
2.4 KiB
TypeScript
import { defineConfig, devices } from '@playwright/test';
|
|
|
|
const PORT = process.env.PORT || 3000;
|
|
|
|
const baseURL = `http://localhost:${PORT}`;
|
|
|
|
/**
|
|
* See https://playwright.dev/docs/test-configuration.
|
|
*/
|
|
export default defineConfig({
|
|
// Timeout per test
|
|
timeout: 30 * 1000,
|
|
testDir: './__tests__',
|
|
outputDir: './test-results',
|
|
|
|
/* Run tests in files in parallel */
|
|
fullyParallel: true,
|
|
/* Fail the build on CI if you accidentally left test.only in the source code. */
|
|
forbidOnly: !!process.env.CI,
|
|
/* Retry on CI only */
|
|
retries: process.env.CI ? 2 : 0,
|
|
maxFailures: process.env.CI ? 3 : 0,
|
|
/* Opt out of parallel tests on CI. */
|
|
workers: process.env.CI ? 3 : undefined,
|
|
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
|
|
reporter: [['html', { outputFolder: './report' }]],
|
|
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
|
|
use: {
|
|
baseURL,
|
|
|
|
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
|
trace: 'on-first-retry',
|
|
},
|
|
|
|
webServer: {
|
|
command: !process.env.CI ? `cd ../.. && yarn app:dev --port ${PORT}` : '',
|
|
url: baseURL,
|
|
timeout: 120 * 1000,
|
|
reuseExistingServer: true,
|
|
},
|
|
|
|
/* Configure projects for major browsers */
|
|
projects: [
|
|
{ name: 'setup', testMatch: /.*\.setup\.ts/ },
|
|
{
|
|
name: 'chromium',
|
|
use: {
|
|
...devices['Desktop Chrome'],
|
|
locale: 'en-US',
|
|
timezoneId: 'Europe/Paris',
|
|
storageState: 'playwright/.auth/user-chromium.json',
|
|
contextOptions: {
|
|
permissions: ['clipboard-read', 'clipboard-write'],
|
|
},
|
|
},
|
|
dependencies: ['setup'],
|
|
},
|
|
{
|
|
name: 'webkit',
|
|
use: {
|
|
...devices['Desktop Safari'],
|
|
locale: 'en-US',
|
|
timezoneId: 'Europe/Paris',
|
|
storageState: 'playwright/.auth/user-webkit.json',
|
|
},
|
|
dependencies: ['setup'],
|
|
},
|
|
{
|
|
name: 'firefox',
|
|
use: {
|
|
...devices['Desktop Firefox'],
|
|
locale: 'en-US',
|
|
timezoneId: 'Europe/Paris',
|
|
storageState: 'playwright/.auth/user-firefox.json',
|
|
launchOptions: {
|
|
firefoxUserPrefs: {
|
|
'dom.events.asyncClipboard.readText': true,
|
|
'dom.events.testing.asyncClipboard': true,
|
|
},
|
|
},
|
|
},
|
|
dependencies: ['setup'],
|
|
},
|
|
],
|
|
});
|