剧作家如何在任何测试失败时禁用全局拆卸?

问题描述 投票:0回答:1

我正在遵循此指南来完成全局拆解。到目前为止一切顺利,每次测试运行完成时我的拆卸代码都会运行。问题是,每次拆卸都会被触发。如果在初始 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

}

},

......

playwright teardown
1个回答
0
投票

您无法在 GlobalTeardown 中访问测试结果。

GlobalTeardown 只是测试完成后执行的函数 - 它对测试执行上下文一无所知。您只能在那里获取 Playwright 配置数据。

您可以创建自定义报告器,它将创建一个包含失败的文件,GlobalTeardown稍后将读取该文件并决定是否执行下一步

© www.soinside.com 2019 - 2024. All rights reserved.