typescript 我如何让全球拆解与Playwright合作?

inn6fuwd  于 2023-06-24  发布在  TypeScript
关注(0)|答案(1)|浏览(124)

我一直在尝试为剧作家建立一个全球性的拆解,但我找不到任何方法让它运行。我试着按照docs中的例子来做,但由于某些原因它仍然不起作用。我没有运行一个设置,但我看不出它会如何影响运行拆除。在配置中,我只使用globalTeardown选项指向我想要运行的文件。下面是我所指向的文件中的一个例子;

async function globalTeardown(_config: FullConfig) {
    const browser = await chromium.launch();
    const context = await browser.newContext();
    const page = new CustomPage(await context.newPage());

    try{
        await context.tracing.start({ screenshots: true, snapshots: true });
        cleanUpFunc(page);

        await browser.close();
    } catch (error) {
        context.tracing.stop({ 
            path: './test-results/teardown-trace.zip',
        });
        await browser.close();
        throw("Global setup error:\n" + error);
    }

}

然后在cleanUpFunc中,它只是Page对象上的一些函数,或者CustomPage对象上的函数,我不能给出一个例子。
我不能提供具体的代码,因为我在保密协议,但我可以尝试提供一个例子,如果需要的话。
谢谢你!

rta7y2nd

rta7y2nd1#

没有人知道您运行的是什么代码,但您可能不会等待cleanUpFunc。

// global-teardown.ts

async function globalTeardown() {
  const browser = await chromium.launch();
  const context = await browser.newContext();
  const page = await context.newPage();

  try {;
    await context.tracing.start({ screenshots: true, snapshots: true });
    await cleanUpFunc(page);
  } catch (e) {
    console.log(`Error in globalTeardown: ${e}`);
  } finally {
    await browser.close();
  }
}

export default globalTeardown;

和配置

// playwright.config.ts

const config: PlaywrightTestConfig = {
  globalTeardown: "./global-teardown.ts",
}

相关问题