Ссылаясь на документацию, предоставленную драматургом, похоже, что хуки (пример: afterAll / beforeAll) можно использовать только внутри файла спецификации/теста, как показано ниже:
// example.spec.ts
import { test, expect } from '@playwright/test';
test.beforeAll(async () => {
console.info('Before tests');
});
test.afterAll(async () => {
console.info('After tests');
});
test('my test', async ({ page }) => {
// ...
});
Мой вопрос: есть ли какая-либо поддержка, при которой может быть только один хук AfterAll() или beforeAll() в одном файле, который будет вызываться для каждого тестового файла? часть кода, которую я хочу иметь внутри afterAll и beforeAll, является общей для всех файлов тестов/спецификаций, и я не хочу, чтобы она дублировалась во всех файлах спецификаций/тестовом файле. Любые предложения или мысли по этому поводу?
ТИА Аллен
Вот обновление после моих выводов: Playwright не поддерживает хуки корневого уровня. в настоящее время это невозможно, так как параллельные тесты будут выполняться в отдельных рабочих процессах, и каждый из них будет запускать хук afterAll после завершения теста. Предпочтительным решением вышеуказанной проблемы будет использование глобальной установки и глобального разрыва.
Что вы можете сделать, так это переопределить существующее приспособление страницы, затем перед использованием() будет ваш «beforeEach», а после использования() будет «afterEach»: playwright.dev/docs/next/test-fixtures#overriding-fixtures для beforeAll и afterAll, как вы сказали, global-setup/teardown — это нужное место.