跳到主要內容

TestConfig

Playwright Test 提供了許多選項來配置測試的收集和執行方式,例如 timeouttestDir。這些選項在TestConfig 物件的配置文件中描述。此類型描述配置文件的格式,要在執行時期訪問已解析的配置參數,請使用FullConfig

Playwright Test 支援同時執行多個測試專案。專案特定的選項應放入testConfig.projects,但頂層的TestConfig 也可以定義所有專案之間共享的基本選項。

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
timeout: 30000,
globalTimeout: 600000,
reporter: 'list',
testDir: './tests',
});

屬性

build

新增於:v1.35 testConfig.build

Playwright 轉譯器配置。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
build: {
external: ['**/*bundle.js'],
},
});

類型

  • Object
    • external Array<string> (選填)

      從轉譯中排除的路徑,以 glob 模式列表表示。通常,您的測試使用的繁重 JS 捆綁包會在此處列出。


expect

新增於:v1.10 testConfig.expect

expect 斷言庫的配置。了解更多關於各種超時的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
expect: {
timeout: 10000,
toMatchSnapshot: {
maxDiffPixels: 10,
},
},
});

類型

  • Object
    • timeout number (選填)

      非同步 expect 匹配器的預設超時時間(毫秒),預設為 5000 毫秒。

    • toHaveScreenshot Object (選填)

      • animations "allow" | "disabled" (選填)

        請參閱 animationspage.screenshot() 中的說明。預設為 "disabled"

      • caret "hide" | "initial" (選填)

        請參閱 caretpage.screenshot() 中的說明。預設為 "hide"

      • maxDiffPixels number (選填)

        可接受的不同像素數量,預設為未設定。

      • maxDiffPixelRatio number (選填)

        可接受的不同像素與總像素數量的比率,介於 01 之間,預設為未設定。

      • scale "css" | "device" (選填)

        請參閱 scalepage.screenshot() 中的說明。預設為 "css"

      • stylePath string | Array<string> (選填)

        請參閱 stylepage.screenshot() 中的說明。

      • threshold number (選填)

        可接受的比較影像中相同像素之間的感知顏色差異,範圍從 0(嚴格)到 1(寬鬆)。"pixelmatch" 比較器計算 YIQ 色彩空間 中的顏色差異,並將預設 threshold 值設為 0.2

      expect(page).toHaveScreenshot() 方法的配置。

    • toMatchSnapshot Object (選填)

      • maxDiffPixels number (選填)

        可接受的不同像素數量,預設為未設定。

      • maxDiffPixelRatio number (選填)

        可接受的不同像素與總像素數量的比率,介於 01 之間,預設為未設定。

      • threshold number (選填)

        可接受的比較影像中相同像素之間的感知顏色差異,範圍從 0(嚴格)到 1(寬鬆)。"pixelmatch" 比較器計算 YIQ 色彩空間 中的顏色差異,並將預設 threshold 值設為 0.2

      expect(value).toMatchSnapshot() 方法的配置。

    • toPass Object (選填)

      • intervals Array<number> (選填)

        toPass 方法的探測間隔(毫秒)。

      • timeout number (選填)

        toPass 方法的超時時間(毫秒)。

      expect(value).toPass() 方法的配置。


forbidOnly

新增於:v1.10 testConfig.forbidOnly

如果任何測試或群組被標記為 test.only()test.describe.only(),是否以錯誤退出。在 CI 上很有用。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
forbidOnly: !!process.env.CI,
});

類型


fullyParallel

新增於:v1.20 testConfig.fullyParallel

Playwright Test 並行執行測試。為了實現這一點,它運行多個 worker 程序,這些程序同時運行。預設情況下,測試檔案並行運行。單一檔案中的測試依序在同一個 worker 程序中執行。

您可以使用此選項配置整個測試運行,以同時執行所有檔案中的所有測試。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
fullyParallel: true,
});

類型


globalSetup

新增於:v1.10 testConfig.globalSetup

全域設定檔案的路徑。此檔案將在所有測試之前被要求和執行。它必須導出一個接受 FullConfig 參數的單一函數。傳遞路徑陣列以指定多個全域設定檔案。

了解更多關於全域設定和拆卸的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
globalSetup: './global-setup',
});

類型


globalTeardown

新增於:v1.10 testConfig.globalTeardown

全域拆卸檔案的路徑。此檔案將在所有測試之後被要求和執行。它必須導出一個單一函數。另請參閱 testConfig.globalSetup。傳遞路徑陣列以指定多個全域拆卸檔案。

了解更多關於全域設定和拆卸的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
globalTeardown: './global-teardown',
});

類型


globalTimeout

新增於:v1.10 testConfig.globalTimeout

整個測試套件可以運行的最長時間(毫秒)。零超時(預設)禁用此行為。在 CI 上很有用,可防止損壞的設定運行時間過長並浪費資源。了解更多關於各種超時的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
globalTimeout: process.env.CI ? 60 * 60 * 1000 : undefined,
});

類型


grep

新增於:v1.10 testConfig.grep

過濾器,僅運行標題與其中一個模式匹配的測試。例如,傳遞 grep: /cart/ 應僅運行標題中包含 "cart" 的測試。也可以在命令列中使用 -g 選項。正則表達式將針對以下字串進行測試:專案名稱、測試檔案名稱、test.describe 名稱(如果有的話)、測試名稱和測試標籤,以空格分隔,例如 chromium my-test.spec.ts my-suite my-test

grep 選項對於標記測試也很有用。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
grep: /smoke/,
});

類型


grepInvert

新增於:v1.10 testConfig.grepInvert

過濾器,僅運行標題與其中一個模式匹配的測試。這與 testConfig.grep 相反。也可以在命令列中使用 --grep-invert 選項。

grepInvert 選項對於標記測試也很有用。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
grepInvert: /manual/,
});

類型


ignoreSnapshots

新增於:v1.26 testConfig.ignoreSnapshots

是否跳過快照期望,例如 expect(value).toMatchSnapshot()await expect(page).toHaveScreenshot()

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
ignoreSnapshots: !process.env.CI,
});

類型


maxFailures

新增於:v1.10 testConfig.maxFailures

整個測試套件運行中允許的最大測試失敗次數。達到此數字後,測試將停止並以錯誤退出。設定為零(預設)禁用此行為。

也可以在命令列中使用 --max-failures-x 選項。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
maxFailures: process.env.CI ? 1 : 0,
});

類型


metadata

新增於:v1.10 testConfig.metadata

將直接放入測試報告並序列化為 JSON 的元數據。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
metadata: 'acceptance tests',
});

類型


name

新增於:v1.10 testConfig.name

配置名稱在報告和測試執行期間可見,除非被 testProject.name 覆蓋。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
name: 'acceptance tests',
});

類型


outputDir

新增於:v1.10 testConfig.outputDir

測試執行期間建立的檔案的輸出目錄。預設為 <package.json-directory>/test-results

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
outputDir: './test-results',
});

類型

詳細資訊

此目錄在開始時被清除。運行測試時,會在 testConfig.outputDir 內建立一個唯一的子目錄,保證並行運行的測試不會衝突。此目錄可以通過 testInfo.outputDirtestInfo.outputPath() 訪問。

這是一個使用 testInfo.outputPath() 建立臨時檔案的範例。

import { test, expect } from '@playwright/test';
import fs from 'fs';

test('example test', async ({}, testInfo) => {
const file = testInfo.outputPath('temporary-file.txt');
await fs.promises.writeFile(file, 'Put some data to the file', 'utf8');
});

preserveOutput

新增於:v1.10 testConfig.preserveOutput

是否在 testConfig.outputDir 中保留測試輸出。預設為 'always'

  • 'always' - 為所有測試保留輸出;
  • 'never' - 不為任何測試保留輸出;
  • 'failures-only' - 僅為失敗的測試保留輸出。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
preserveOutput: 'always',
});

類型

  • "always" | "never" | "failures-only"

projects

新增於:v1.10 testConfig.projects

Playwright Test 支援同時執行多個測試專案。請參閱 TestProject 以了解更多資訊。

用法

playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
projects: [
{ name: 'chromium', use: devices['Desktop Chrome'] }
]
});

類型


quiet

新增於:v1.10 testConfig.quiet

是否抑制來自測試的 stdio 和 stderr 輸出。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
quiet: !!process.env.CI,
});

類型


repeatEach

新增於:v1.10 testConfig.repeatEach

重複每個測試的次數,對於調試不穩定的測試很有用。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
repeatEach: 3,
});

類型


reportSlowTests

新增於:v1.10 testConfig.reportSlowTests

是否報告慢速測試檔案。傳遞 null 以禁用此功能。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
reportSlowTests: null,
});

類型

  • null | Object
    • max number

      要報告的慢速測試檔案的最大數量。預設為 5

    • threshold number

      被視為慢速的測試持續時間(毫秒)。預設為 15 秒。

詳細資訊

耗時超過 threshold 毫秒的測試檔案被視為慢速,並且會報告最慢的檔案,最多不超過 max 個。將 max 傳遞為零會報告所有超過閾值的測試檔案。


reporter

新增於:v1.10 testConfig.reporter

要使用的報告器列表。每個報告器可以是

  • 內建報告器名稱,如 'list''json'
  • 模組名稱,如 'my-awesome-reporter'
  • 報告器的相對路徑,如 './reporters/my-awesome-reporter.js'

您可以在元組中將選項傳遞給報告器,例如 ['json', { outputFile: './report.json' }]

報告器指南中了解更多資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
reporter: 'line',
});

類型

  • string | Array<Object> | "list" | "dot" | "line" | "github" | "json" | "junit" | "null" | "html"
    • 0 string

      報告器名稱或模組或檔案路徑

    • 1 Object

      報告器選項物件(如果有的話)


respectGitIgnore

新增於:v1.45 testConfig.respectGitIgnore

在搜尋測試檔案時,是否跳過 .gitignore 中的條目。預設情況下,如果未明確指定 testConfig.testDirtestProject.testDir,Playwright 將忽略任何與 .gitignore 條目匹配的測試檔案。

用法

testConfig.respectGitIgnore

類型


retries

新增於:v1.10 testConfig.retries

給予失敗測試的最大重試次數。預設情況下,失敗的測試不會重試。了解更多關於測試重試的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
retries: 2,
});

類型


shard

新增於:v1.10 testConfig.shard

分片測試並僅執行選定的分片。以從 1 開始的形式指定,例如 { total: 5, current: 2 }

了解更多關於 Playwright Test 的並行性和分片資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
shard: { total: 10, current: 3 },
});

類型


snapshotPathTemplate

新增於:v1.28 testConfig.snapshotPathTemplate

此選項配置一個模板,用於控制 expect(page).toHaveScreenshot()expect(value).toMatchSnapshot() 生成的快照位置。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
testDir: './tests',
snapshotPathTemplate: '{testDir}/__screenshots__/{testFilePath}/{arg}{ext}',
});

類型

詳細資訊

該值可能包含一些「令牌」,這些令牌將在測試執行期間被實際值替換。

考慮以下檔案結構

playwright.config.ts
tests/
└── page/
└── page-click.spec.ts

以及以下使用 toHaveScreenshot() 呼叫的 page-click.spec.ts

page-click.spec.ts
import { test, expect } from '@playwright/test';

test.describe('suite', () => {
test('test should work', async ({ page }) => {
await expect(page).toHaveScreenshot(['foo', 'bar', 'baz.png']);
});
});

支援的令牌列表

  • {arg} - 相對快照路徑,不帶擴展名。這些來自傳遞給 toHaveScreenshot()toMatchSnapshot() 呼叫的參數;如果沒有參數呼叫,這將是自動生成的快照名稱。
    • 值:foo/bar/baz
  • {ext} - 快照擴展名(帶點)
    • 值:.png
  • {platform} - process.platform 的值。
  • {projectName} - 專案的檔案系統安全名稱(如果有的話)。
    • 值:''(空字串)。
  • {snapshotDir} - 專案的 testConfig.snapshotDir
    • 值:/home/playwright/tests(由於配置中未提供 snapshotDir,因此預設為 testDir
  • {testDir} - 專案的 testConfig.testDir
    • 值:/home/playwright/tests(絕對路徑是因為 testDir 相對於配置目錄解析)
  • {testFileDir} - 從 testDir測試檔案的相對路徑中的目錄。
    • 值:page
  • {testFileName} - 測試檔案名稱,帶擴展名。
    • 值:page-click.spec.ts
  • {testFilePath} - 從 testDir測試檔案的相對路徑
    • 值:page/page-click.spec.ts
  • {testName} - 檔案系統安全的測試標題,包括父級描述,但不包括檔案名稱。
    • 值:suite-test-should-work

每個令牌前面可以有一個字元,僅當此令牌具有非空值時才使用。

考慮以下配置

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
snapshotPathTemplate: '__screenshots__{/projectName}/{testFilePath}/{arg}{ext}',
testMatch: 'example.spec.ts',
projects: [
{ use: { browserName: 'firefox' } },
{ name: 'chromium', use: { browserName: 'chromium' } },
],
});

在此配置中

  1. 第一個專案沒有名稱,因此其快照將存儲在 <configDir>/__screenshots__/example.spec.ts/...
  2. 第二個專案名稱,因此其快照將存儲在 <configDir>/__screenshots__/chromium/example.spec.ts/..
  3. 由於 snapshotPathTemplate 解析為相對路徑,因此它將相對於 configDir 解析。
  4. 正斜線 "/" 可以用作任何平台上的路徑分隔符。

testDir

新增於:v1.10 testConfig.testDir

將遞迴掃描以查找測試檔案的目錄。預設為配置文件的目錄。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
testDir: './tests/playwright',
});

類型


testIgnore

新增於:v1.10 testConfig.testIgnore

與這些模式之一匹配的檔案不會作為測試檔案執行。匹配是針對絕對檔案路徑執行的。字串被視為 glob 模式。

例如,'**/test-assets/**' 將忽略 test-assets 目錄中的任何檔案。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
testIgnore: '**/test-assets/**',
});

類型


testMatch

新增於:v1.10 testConfig.testMatch

僅與這些模式之一匹配的檔案會作為測試檔案執行。匹配是針對絕對檔案路徑執行的。字串被視為 glob 模式。

預設情況下,Playwright 查找與以下 glob 模式匹配的檔案:**/*.@(spec|test).?(c|m)[jt]s?(x)。這表示帶有 ".test"".spec" 後綴的 JavaScript 或 TypeScript 檔案,例如 login-screen.wrong-credentials.spec.ts

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
testMatch: /.*\.e2e\.js/,
});

類型


timeout

新增於:v1.10 testConfig.timeout

每個測試的超時時間(毫秒)。預設為 30 秒。

這是所有測試的基本超時時間。此外,每個測試都可以使用 test.setTimeout() 配置自己的超時時間。了解更多關於各種超時的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
timeout: 5 * 60 * 1000,
});

類型


tsconfig

新增於:v1.49 testConfig.tsconfig

適用於所有導入檔案的單個 tsconfig 的路徑。預設情況下,每個導入檔案的 tsconfig 都會單獨查找。請注意,當載入配置文件或其任何依賴項時,tsconfig 屬性無效。當指定 --tsconfig 命令列選項時,將忽略此屬性。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
tsconfig: './tsconfig.test.json',
});

類型


updateSnapshots

新增於:v1.10 testConfig.updateSnapshots

是否使用測試運行產生的實際結果更新預期的快照。預設為 'missing'

  • 'all' - 所有執行的測試都將更新快照。
  • 'changed' - 所有執行的測試都將更新不匹配的快照。匹配的快照將不會更新。
  • 'missing' - 創建缺少的快照,例如在編寫新測試並首次運行它時。這是預設值。
  • 'none' - 不更新快照。

了解更多關於快照的資訊。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
updateSnapshots: 'missing',
});

類型

  • "all" | "changed" | "missing" | "none"

updateSourceMethod

新增於:v1.50 testConfig.updateSourceMethod

定義如何在原始碼中更新快照。

  • 'patch' - 創建一個統一的 diff 檔案,可用於稍後更新原始碼。這是預設值。
  • '3way' - 在原始碼中生成合併衝突標記。這允許用戶手動選擇相關更改,就像他們在 IDE 中解決合併衝突一樣。
  • 'overwrite' - 使用新的快照值覆蓋原始碼。

用法

testConfig.updateSourceMethod

類型

  • "overwrite" | "3way" | "patch"

use

新增於:v1.10 testConfig.use

所有測試的全域選項,例如 testOptions.browserName。了解更多關於配置的資訊,並參閱可用選項

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
use: {
browserName: 'chromium',
},
});

類型


webServer

新增於:v1.10 testConfig.webServer

在測試期間啟動開發 Web 伺服器(或多個)。

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: {
command: 'npm run start',
url: 'http://127.0.0.1:3000',
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
},
use: {
baseURL: 'https://127.0.0.1:3000/',
},
});

現在您可以在導航頁面時使用相對路徑

test.spec.ts
import { test } from '@playwright/test';

test('test', async ({ page }) => {
// This will result in https://127.0.0.1:3000/foo
await page.goto('/foo');
});

可以啟動多個 Web 伺服器(或背景進程)

playwright.config.ts
import { defineConfig } from '@playwright/test';
export default defineConfig({
webServer: [
{
command: 'npm run start',
url: 'http://127.0.0.1:3000',
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
},
{
command: 'npm run backend',
url: 'http://127.0.0.1:3333',
timeout: 120 * 1000,
reuseExistingServer: !process.env.CI,
}
],
use: {
baseURL: 'http://127.0.0.1:3000',
},
});

類型

  • Object | Array<Object>
    • command string

      要啟動的 Shell 命令。例如 npm run start

    • cwd string (選填)

      衍生程序的當前工作目錄,預設為配置文件的目錄。

    • env Object<string, string> (選填)

      要為命令設定的環境變數,預設為 process.env

    • ignoreHTTPSErrors boolean (選填)

      擷取 url 時是否忽略 HTTPS 錯誤。預設為 false

    • port number (選填)

      您的 http 伺服器預期出現的端口。它會等待直到它接受連接。應指定 porturl 之一。

    • reuseExistingServer boolean (選填)

      如果為 true,它將在 porturl 可用時重複使用現有的伺服器。如果該 porturl 上沒有伺服器正在運行,它將運行命令以啟動新伺服器。如果為 false,如果現有程序正在監聽 porturl,它將拋出錯誤。這通常應設定為 !process.env.CI,以便在本地運行測試時允許本地開發伺服器。

    • stdout "pipe" | "ignore" (選填)

      如果為 "pipe",它將命令的 stdout 管道傳輸到程序 stdout。如果為 "ignore",它將忽略命令的 stdout。預設為 "ignore"

    • stderr "pipe" | "ignore" (選填)

      是否將命令的 stderr 管道傳輸到程序 stderr 或忽略它。預設為 "pipe"

    • timeout number (選填)

      等待程序啟動並可用所需的時間(毫秒)。預設為 60000。

    • gracefulShutdown Object (選填)

      • signal "SIGINT" | "SIGTERM"

      • timeout number

      如何關閉程序。如果未指定,則強制 SIGKILL 程序組。如果設定為 { signal: 'SIGTERM', timeout: 500 },則向程序組發送 SIGTERM 信號,如果程序組在 500 毫秒內未退出,則發送 SIGKILL。您也可以使用 SIGINT 作為信號。0 超時時間表示不會發送 SIGKILL。Windows 不支援 SIGTERMSIGINT 信號,因此在 Windows 上會忽略此選項。請注意,關閉 Docker 容器需要 SIGTERM

    • url string (選填)

      您的 http 伺服器上的 URL,預期在伺服器準備好接受連接時返回 2xx、3xx、400、401、402 或 403 狀態代碼。重定向(3xx 狀態代碼)將被跟隨,並且會檢查新位置。應指定 porturl 之一。

詳細資訊

如果指定了端口,Playwright Test 將等待它在 127.0.0.1::1 上可用,然後再運行測試。如果指定了 URL,Playwright Test 將等待 URL 返回 2xx、3xx、400、401、402 或 403 狀態代碼,然後再運行測試。

對於持續整合,您可能希望使用 reuseExistingServer: !process.env.CI 選項,該選項不會在 CI 上使用現有伺服器。要查看 stdout,您可以設定 DEBUG=pw:webserver 環境變數。

port(但不是 url)作為 testOptions.baseURL 傳遞給 Playwright。例如,端口 8080 會產生等於 https://127.0.0.1:8080baseURL。如果 webServer 被指定為陣列,您必須明確配置 baseURL(即使它只有一個條目)。

注意

也建議在配置中指定 testOptions.baseURL,以便測試可以使用相對 URL。


workers

新增於:v1.10 testConfig.workers

用於並行化測試的最大並行 worker 程序數。也可以設定為邏輯 CPU 核心的百分比,例如 '50%'

Playwright Test 使用 worker processes (工作進程) 來執行測試。 總是會有至少一個 worker process,但可以使用更多來加速測試執行。

預設為邏輯 CPU 核心數量的一半。 深入了解 Playwright Test 的 平行處理和分片

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
workers: 3,
});

類型


已棄用

snapshotDir

新增於:v1.10 testConfig.snapshotDir
不建議使用

使用 testConfig.snapshotPathTemplate 來設定快照路徑。

快照檔案 (使用 toMatchSnapshot 建立) 的基礎目錄,相對於設定檔而言。 預設為 testConfig.testDir

用法

playwright.config.ts
import { defineConfig } from '@playwright/test';

export default defineConfig({
snapshotDir: './snapshots',
});

類型

詳細資訊

每個測試的目錄可以透過 testInfo.snapshotDirtestInfo.snapshotPath() 存取。

此路徑將作為每個測試檔案快照目錄的基礎目錄。 將 snapshotDir 設定為 'snapshots'testInfo.snapshotDir 將解析為 snapshots/a.spec.js-snapshots