Skip to content

Commit 9f3e616

Browse files
committed
perf(e2e): E2E 테스트 병렬 실행 활성화
테스트 107개 기준 5.5분 → ~1.5분으로 단축 예상 - fullyParallel: true 설정 - workers: 4로 증가
1 parent aeeb289 commit 9f3e616

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

e2e/authenticated.auth.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ test.describe("로그인 상태 테스트", () => {
2323

2424
test("로그인 후 즐겨찾기 버튼 토글이 작동함", async ({ page }) => {
2525
await page.goto("/");
26+
await page.locator("table tbody tr").first().waitFor();
2627

2728
const firstRow = page.locator("table tbody tr").first();
2829
const favoriteButton = firstRow.getByRole("button", { name: // });

e2e/content-reward-list.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ test.describe("컨텐츠별 보상 페이지", () => {
4444

4545
test("테이블 데이터가 로드됨", async ({ page }) => {
4646
await page.goto("/content-reward-list");
47+
await page.locator("table tbody tr").first().waitFor({ timeout: 15000 });
4748

4849
const tableRows = page.locator("table tbody tr");
4950
await expect(tableRows).not.toHaveCount(0);

e2e/filter-dialog.spec.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,9 @@ test.describe("필터 다이얼로그", () => {
118118
if (await dialog.isVisible()) {
119119
await dialog.getByRole("button", { name: "close" }).click();
120120
}
121-
await page.waitForTimeout(500);
121+
122+
// 필터 적용 대기 (행 수가 줄어들 때까지)
123+
await expect(page.locator("table tbody tr")).not.toHaveCount(initialRowCount);
122124

123125
const filteredRowCount = await page.locator("table tbody tr").count();
124126
expect(filteredRowCount).toBeLessThan(initialRowCount);
@@ -131,7 +133,9 @@ test.describe("필터 다이얼로그", () => {
131133
if (await dialog.isVisible()) {
132134
await dialog.getByRole("button", { name: "close" }).click();
133135
}
134-
await page.waitForTimeout(500);
136+
137+
// 전체 필터 적용 대기 (행 수가 늘어날 때까지)
138+
await expect(page.locator("table tbody tr")).not.toHaveCount(filteredRowCount);
135139

136140
const allRowCount = await page.locator("table tbody tr").count();
137141
expect(allRowCount).toBeGreaterThan(filteredRowCount);

playwright.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ const WEBSERVER_TIMEOUT_MS = 3 * 60 * 1000;
77
export default defineConfig({
88
testDir: "./e2e",
99
outputDir: "./test-results",
10-
fullyParallel: false,
10+
fullyParallel: true,
1111
forbidOnly: !!process.env.CI,
1212
retries: process.env.CI ? 2 : 0,
13-
workers: 1,
13+
workers: 4,
1414
reporter: [["html", { open: "never", outputFolder: "playwright-report" }]],
1515
use: {
1616
baseURL: FRONTEND_URL,

0 commit comments

Comments
 (0)