70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
import { PlaywrightTestConfig } from "@playwright/test";
|
|
import dotenv from 'dotenv';
|
|
import Browser from "./src/framework/manager/Browser";
|
|
|
|
dotenv.config();
|
|
|
|
const timeInMin: number = 60 * 1000;
|
|
const config: PlaywrightTestConfig = {
|
|
use: {
|
|
browserName: Browser.type(process.env.BROWSER.toLowerCase()),
|
|
headless: false,
|
|
channel: Browser.channel(process.env.BROWSER.toLowerCase()),
|
|
launchOptions: {
|
|
args: ["--start-maximized", "--disable-extensions", "--disable-plugins"],
|
|
headless: false,
|
|
timeout: Number.parseInt(process.env.BROWSER_LAUNCH_TIMEOUT, 10),
|
|
slowMo: 100,
|
|
downloadsPath: "./test-results/downloads",
|
|
},
|
|
viewport: null,
|
|
ignoreHTTPSErrors: true,
|
|
acceptDownloads: true,
|
|
actionTimeout: Number.parseInt(process.env.ACTION_TIMEOUT, 10) * timeInMin,
|
|
navigationTimeout: Number.parseInt(process.env.NAVIGATION_TIMEOUT, 10) * timeInMin,
|
|
screenshot: {
|
|
mode: "only-on-failure",
|
|
fullPage: true,
|
|
},
|
|
video: "retain-on-failure",
|
|
},
|
|
testDir: "./src/tests",
|
|
outputDir: "./test-results/failure",
|
|
retries: Number.parseInt(process.env.RETRIES, 10),
|
|
preserveOutput: "failures-only",
|
|
reportSlowTests: null,
|
|
timeout: Number.parseInt(process.env.TEST_TIMEOUT, 10) * timeInMin,
|
|
workers: Number.parseInt(process.env.PARALLEL_THREAD, 10),
|
|
reporter: [
|
|
["dot"],
|
|
["allure-playwright", {
|
|
detail: false,
|
|
suiteTitle: false,
|
|
environmentInfo: {
|
|
OS: process.platform.toUpperCase(),
|
|
BROWSER: process.env.BROWSER.toUpperCase(),
|
|
BASE_URL: process.env.BASE_URL,
|
|
},
|
|
}],
|
|
['html', { open: 'never', outputFolder: "./test-results/report" }],
|
|
["junit", { outputFile: "./test-results/results/results.xml" }],
|
|
["json", { outputFile: "./test-results/results/results.json" }],
|
|
["./src/framework/logger/TestListener.ts"],
|
|
['monocart-reporter', {
|
|
name: "Automation Report",
|
|
outputFile: './test-results/report/execution.html',
|
|
}],
|
|
],
|
|
projects: [
|
|
{
|
|
name: "local",
|
|
testMatch: `*${process.env.TEST_NAME.trim()}*`,
|
|
},
|
|
{
|
|
name: "suite",
|
|
testMatch: "*.test.ts",
|
|
},
|
|
],
|
|
};
|
|
export default config;
|