我正在遵循此指南来完成全局拆解。到目前为止一切顺利,每次测试运行完成时我的拆卸代码都会运行。问题是,每次拆卸都会被触发。如果在初始 e2e 测试执行期间发现故障/错误,我需要禁用它。
我还使用 测试列表 来控制我的 e2e 测试运行的顺序,因为并行运行不适合我们。我知道测试应该单独构建,但这样对我们来说不起作用。
我的测试列表:(test.list.js) @root
import { test } from '@playwright/test';
import usecase1 from './e2e/usecase-1.spec';
import usecase2 from './e2e/usecase-2.spec';
import usecase3 from './e2e/usecase-3.spec';
import usecase4 from './e2e/usecase-4.spec';
test.describe(usecase1);
test.describe(usecase2);
test.describe(usecase3);
test.describe(usecase4);
我的全局拆卸文件:(teardown.js) @root
import { chromium } from '@playwright/test';
async function globalTeardown()
{
const browser = await chromium.launch();
const page = await browser.newPage();
//some code doing the teardown
}
export default globalTeardown()
我的 playwright.config.js:
export default defineConfig({
testMatch: 'test.list.js',
globalTeardown: require.resolve('./teardown.js'),
fullyParallel: false,
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
headless: false
}
},
......
您无法在 GlobalTeardown 中访问测试结果。
GlobalTeardown 只是测试完成后执行的函数 - 它对测试执行上下文一无所知。您只能在那里获取 Playwright 配置数据。
您可以创建自定义报告器,它将创建一个包含失败的文件,GlobalTeardown稍后将读取该文件并决定是否执行下一步